【问题标题】:Loading model or collection加载模型或集合
【发布时间】:2013-08-09 11:24:31
【问题描述】:

我是 Backbone 的新手,之前我使用过 ExtJS。我的目标是用一些数据填充主干集合。现在......在 ExtJS 中,如果我想加载一个集合,而不是使用属于它的 .load() 方法。当我阅读 Backbone 的文档时,我可以看到大多数分配给“模型”的获取/同步方法。所以我的问题是:

"如果我想加载 Backbone 的集合,我应该直接加载还是通过 'model' 加载?"

【问题讨论】:

  • 这是我的问题,我应该使用它并在此方法中直接访问“模型”属性还是应该先在其中加载模型?

标签: javascript backbone.js


【解决方案1】:

主干集合可以是主干模型的集合。 如果您将收藏设置为:

YourCollection = Backbone.Collection.extend({
    model: YourModel,
    url: '/url/to/json/collection';
    }
});

你的模型为:

YourModel = Backbone.Model.extend({
    url: '/url/to/json/model';
    }
});

然后你可以这样做:

var collection = new YourCollection();
collection.fetch(); //GETs /url/to/json/collection

路径 /url/to/json/collection 应该返回一个 JSON 数组,其中数组中的每个元素都是模型的 JSON。

路径/url/to/json/model 应该返回一个代表一个模型的 JSON。

假设您的服务器返回的 JSON 具有类似 "name" 的属性,那么您可以做一些有趣的事情:collection.where({name: 'some name'})。这将返回一个带有YourModels 的数组。

所以,回答您最初的问题,是的,您应该通过 Backbone 的集合加载它。

【讨论】:

  • 是的,这就是我正在处理的......现在我主要关心的是集合中的 .fetch() 方法。它应该首先加载 YourModel 而不是 YourModel 应该被推送到 YourCollection.models 还是我应该直接放荡 YourCollection.models (并且 YourModel 实例对于获取过程是不必要的)?
  • 对不起,我没有看到最后一句话,这就是我需要的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 2014-12-02
相关资源
最近更新 更多