我在我的集合中添加了一个模型并进行了model.save数据保存在服务器上.
在此之后我调用collection.fetch({add:true}).理想情况下,只应从服务器返回一个模型,即新添加的模型,但我看到整个集合在chrome开发人员工具中传播回来.
我糊涂了.这实际上是如何工作的?
Loa*_*oof 14
作为Cyril N.的答案的附加组件(主要描述了默认行为,我认为应该足够了),我想更深入地解释3个标志的作用:
add:Backbone是否应该创建并向集合中添加尚不存在的模型(即,其id不在集合中) remove:Backbone是否应该从集合中删除未从服务器返回的模型(即,其id不是带回的数据) merge:Backbone是否应更新不在前两个类别中的模型(已在集合中,并从服务器返回)但是,我想进一步扩展该方法的一般行为(它使用该Collection#set方法作为回调,因此它更多的Collection#set是行为).Backbone 准备模型,这意味着它在方法开始时创建虚假的,易变的模型(如果没有添加它们,它们只是易失性的).这可能会导致意外行为:因为它会创建模型,所以会执行这些行为的初始化方法.
另外,作为附注,自Backbone 1.0以来,Collection#reset如果要在获取时重置集合,则会引入该标志(因此它将此方法用作回调).在此之前,它是该Collection#fetch方法的默认行为.
好吧,有了这两个答案,你应该得到你需要的所有信息.
| 归档时间: |
|
| 查看次数: |
6713 次 |
| 最近记录: |