2013-05-28 32 views
1

我开始使用backbone.js,我很困惑,为什么你可以用一堆不同的方式指定url。它似乎并不像集合url在模型url函数中使用的任何地方。那么,在我的所有模型上设置urlroot并从不使用集合url是否有什么坏处?为什么BackboneJs集合有URL?

回答

2

根本没有任何伤害,你可以在模型级别上完成更新,删除等工作,但是当你想从服务器中一次获取一组模型时,它可以方便地做到这样的事情。

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. 
+0

如果这个集合不应该包含模型的所有实例,但是如何获取哪些模型以获取?就像我有一个学生模型,一个学生集合和一个拥有学生集合的类模型一样,我是否需要手动将每个学生集合的url设置为与类模型的ID相关? – bdwain

+0

作为Javascript中的每个属性,它可以是一个值或一个函数,对于这个特定的例子,你可以使用一个函数来“计算”班级的学生集合的路线。像url:function(){retunr“students”+ class.id;}这种方式当你instanciate你的课堂可以调用this.class.students.fetch(); –

0

在Backbone.js中,模型和集合与“结构化”数据相关,Backbone提供了用于执行此操作的方法。 REST风格的路线,你最经常需要更新/取这样的:

GET /students 
[{name: "...", ...}] 

GET /students/1 
{name: "..."} 

当你观察到的,网址是相似的,但在大多数情况下,处理采集和模型的响应取,会有所不同。从概念上讲,模型是集合的一部分,模型URL在大多数情况下可以从集合中解析出来。还有其他API,其中模型和收集不匹配,您需要自己设置URL(例如会话模型,不属于集合)

也许这也有助于比较模型和文档与收藏获取:

这也可能有助于理解这种观点的骨干方式:http://jonathanotto.com/blog/backbone_js_for_the_everyman.html

相关问题