主干“智能”更新不会合并模型
Backbone "smart" update doesn't merge models
我的收藏:
return Backbone.Collection.extend({
url: config.API + 'Events?count=1',
initialize: function() {
this.fetch();
},
more: function() {
this.fetch({ remove: false, merge: true });
}
});
对服务器的每个请求都会返回以下内容:
[{"EventId":1,"User":{"UserId":6,"UserName":"phil","Photo":null},"纬度":"46.3165906656757","经度":"46.5820399671793","描述":"Hdbdjcjfgkgkgkgjf","EventDate":"2014-05-10T21:44:36","DateCreate":"2014-11-28T19:19:51","LastComments":[{"CommentId":1,"User":null,"Text":"HELLO","DateCreate":"2014-11-28T17:41:46","Likes":null,">LikesCount":0},{"CommentId":2,"User":null,"Text":"HELLO","DateCreate":"2014-11-29T00:59:43","Likes":null,"LikesCount":0},{"CommentId":3,"User":null,"Text":"HELLO","DateCreate":"2014-11-29T01:07:13","Likes":null,"LikesCount":0},{"CommentId":4,"User":null,"Text":"HELLO","DateCreate":"2014-11-29T01:10:41","Likes":null,"LikesCount":0},{"CommentId":5,"User":null,"Text":"HELLO","DateCreate":"2014-11-29T01:17:33","Likes":null,"LikesCount":0},{"CommentId":6,"User":null,"Text":"HELLO","DateCreate":"2014-11-29T01:29:59","Likes":null,"LikesCount":0}],"照片":null,"LastLikes":null}]
因此,初始化后,集合中只有一个模型。但是每次我调用more((时,这个模型都不会更新,毕竟我们在集合中有很多重复项,因为我多次调用more((。这种行为对我来说似乎很奇怪,因为在文档中我看到:
set 方法使用传递的模型列表对集合执行"智能"更新。如果列表中的模型尚未在集合中,则将添加该模型;如果模型已经在集合中,则其属性将被合并;如果集合包含列表中不存在的任何模型,则会将其删除。发生这种情况时,将触发所有相应的"添加"、"删除"和"更改"事件。返回集合中触摸的模型。如果要自定义行为,可以使用以下选项禁用它:{add: false}、{remove: false} 或 {merge: false}。
问题是你没有传统的id
字段。请参阅主干 - 对 id 使用不同的字段名称
您需要指定自定义模型类型。
var EventModel = Backbone.Model.extend({
idAttribute: "EventId"
});
Backbone.Collection.extend({
model: EventModel
})
- 在VanillaJS中模拟模型双向数据绑定
- JQuery合并了keyup和focusout两个函数
- JSON重构(合并内容)与javascript
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- Javascript-根据赋值顺序,按键合并对象数组
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 将不在模型中的数据返回到mvc控制器
- 合并两个数组,重新调整循环js
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何将多个 Blender JSON 模型合并到一个 Three.js Object3D 对象中
- 通过Javascript的MS Word对象模型:邮件合并
- 主干“智能”更新不会合并模型
- 如何将模型和控制器合并到我的节点.js应用程序中
- Angular -将两个输入ng模型合并为一个
- 如何在一个backbone.js模型同步中合并多个json请求
- 在three.js中合并模型和材料的问题
- 使用下划线合并重复项的主干模型数据