如果在初始化dialogview时使用模型属性的对象数组初始化集合。然后,允许用户编辑列表的对话框视图通过调用模型集来更新这些模型值。当单击对话框的OK按钮时,backbone是否提供了一种方法来获取自从创建/初始化集合以来仅更改了那些模型的列表?如何获得集合中建模后发生更改的模型列表
1
A
回答
3
有看起来诱人的各种模型方法:
但是,不要被愚弄,那些只适用而"change"
事件正在tr iggered:
所以他们没用在事件发生后已被触发和处理。
我认为你必须跟踪哪些模型已经改变了你自己。你可以自
集合本身做这个没有太多精力和收集可以绑定到其自己的事件。例如,你可以有这样的事情在您的收藏:
Backbone.Collection.extend({
initialize: function() {
this.delta = { };
this.on('change', this._a_model_has_changed);
},
changed_models: function() {
return _.chain(this.delta).values();
},
_a_model_has_changed: function(m) {
this.delta[m.id] = m;
}
});
然后,你可以得到那些通过调用collection.changed_models()
改变的车型。您还希望监听其他事件,以便在模型被删除或与服务器同步时更新此.delta;以上仅供说明。如果你不想一个下划线对象返回你也可以使用这样的:
changed_models: function() {
return _(this.delta).values();
}
但能够collection.changed_models().each(function() { ... })
方便。
演示:http://jsfiddle.net/ambiguous/8PQh9/
你也可以让模型通过对模型的一组类似的追踪自己的肮脏。然后,你可以做这样的事情:
collection.filter(function(m) { return m.is_dirty() });
其中,当然,is_dirty
假若该模型已经改变返回true。
相关问题
- 1. 刷新集合后,如何获取更改的模型?
- 2. 集合中的更改/更新模型
- 3. 图表更改后如何获取更新后的模型?
- 4. 如何更新集合中的模型?
- 5. 在ATK4中,我如何修改模型以获得DISTINCT列表
- 6. 如何使用锂的PHP框架与枚举列表的集合和更改模型中的集合
- 7. Backbone新手:如何从集合中获得第一个模型?
- 8. 如何获得集合的空列表?
- 9. 如何迭代模型中的集合到无序列表?
- 10. 如何在创建目标表后发生“模式更改”错误?
- 11. 如何从集合中的模型列表中获取某个属性?
- 12. 如何获得上回发的视图模型子集合在MVC3?
- 13. 如何在更改模型后验证模型的状态
- 14. 获取_wrapped_view()发生在创建模型
- 15. 更新集合中的模型
- 16. 更新集合中模型的索引
- 17. 如何以模拟模型的列Rails的集合3
- 18. Backbone JS - 更新嵌套子模型更改上的父模型集合
- 19. Rails:如何从模板集合创建新的关联模型
- 20. Drupal的:如何获得模块列表
- 21. Backbone模型中的集合
- 22. 流明如何从模型集合构建序列化结构?
- 23. 如何合并集合以获得相同的文档模式?
- 24. 如何在集合中移动模型?
- 25. 如何获得模型中的对象?
- 26. 如何获得模型中的参数?
- 27. 模板不更新后模型改变
- 28. Angular如何在模型值更改后触发复选框的更改事件?
- 29. 如何创建包含查询模型列表的模型?
- 30. 如何更新集合中的所有模型 - Backbone.js