正在检查集合中是否有任何脏的主干模型数据
Checking for any dirty Backbone model data within collection
当用户在不同的Backbone集合模型之间切换时(通过单击表行),我需要"唠叨"用户未保存的更改。我在谷歌上搜索了"检查主干模型脏数据"(例如),但没有找到任何明确的信息。
我使用下划线的"some"和isEqual功能,以如下方式完成了这项工作,"some()"足以确定是否有任何未保存的更改(而不是那些精确的更改),特别是因为model属性实际上是一个对象数组。
var anyDirty = _.some(myCollection.models, function(model) {
return !_.isEqual(model.get('nodes'), model.previousAttributes()['nodes]);
});
我是Backbone的新手,我想知道这是否是一种可以接受的针对脏模型数据的临时检查方法。或者,Backbone是否为此提供了某种内置功能,而我最初尝试谷歌搜索时没有透露?
除了"nodes",我还有另一个需要监视的属性,所以我切换到使用changedAttributes():http://backbonejs.org/#Model-更改属性:
var anyDirty = _.some(myCollection.models, function(model) {
return model.changedAttributes();
});
这可能是一个不完美的解决方案,因为它似乎会返回一个changedAttributes的对象,即使该属性已更改回其原始值。因此,从长远来看,我似乎需要的是对原始数据进行快照并与之进行比较。尽管如此,使用model.changedAttributes()是我第一次发布内容的一个更简洁的替代方案。
相关文章:
- 模型数据未通过窗体传播到控制器ASP.NET MVC4
- 聚合Sails.JS/Waterline中的嵌套模型数据
- Ember.js-获取DOM元素的模型数据
- AngularJs 切换模板 URL 并访问模型数据
- Cakephp 访问不在模型数据数组上的输入
- 使用输入更新 ng 模型数据
- 来自模型数据的Ember JS自定义请求
- 主干模型默认值不会被模型数据覆盖
- 我们如何使用Jquery和ASP.NET MVC 4复杂模型数据设置HTML元素的值
- 如果ng-if的计算结果为false,AngularJS会使我的模型数据无效
- 在 KnockoutJS 中更改模型数据时出现 Javascript 内存泄漏
- 在脚本中使用角度模型数据
- 余烬需要刷新浏览器才能获取模型数据
- 无法在 javascript 中使用我的模型数据
- 余烬模型数据未显示在模板中
- Ember JS - 从路由操作更新/刷新模型数据
- 尝试从 MVC3 中的 JSON 解析模型数据
- 集合中的主干模型数据未保存到本地存储
- 主干新视图反映旧模型数据
- AngularJS;模型数据未在 html 表中列出