【发布时间】:2013-05-28 04:06:08
【问题描述】:
我开始使用backbone.js,我很困惑为什么你可以用很多不同的方式指定url。除了模型 url 函数之外,集合 url 似乎没有在任何地方使用。那么只在我所有的模型上设置 urlroot 并且从不使用集合 url 有什么害处吗?
【问题讨论】:
标签: backbone.js backbone.js-collections backbone-model
我开始使用backbone.js,我很困惑为什么你可以用很多不同的方式指定url。除了模型 url 函数之外,集合 url 似乎没有在任何地方使用。那么只在我所有的模型上设置 urlroot 并且从不使用集合 url 有什么害处吗?
【问题讨论】:
标签: backbone.js backbone.js-collections backbone-model
这完全没有坏处,您可以在模型级别进行更新、删除等工作,但当您想一次从服务器获取一组模型时,这样做很方便。
Books = Backbone.Collection.extend({
url : "/books"
});
books = new Books();
books.fetch(); // this will line will make a GET request to your backend, the result will
// be a list of models.
【讨论】:
在 Backbone.js 中,模型和集合与“结构化”数据相关,而 Backbone 提供了执行此操作的方法。使用 Restful 路由,您通常需要这样的更新/获取:
GET /students
[{name: "...", ...}]
GET /students/1
{name: "..."}
正如您所观察到的,URL 是相似的,但在大多数情况下,处理 Collection 和 Model fetch 的响应看起来会有所不同。由于从概念上讲,模型是集合的一部分,因此模型 URL 在大多数情况下可以从集合中解析。还有其他 API 的模型和集合不匹配,您需要自己设置 URL(例如会话模型,不属于集合)
也许它也有助于比较模型和集合获取的文档:
这也可能有助于理解 Backbone 的思维方式:http://jonathanotto.com/blog/backbone_js_for_the_everyman.html
【讨论】: