比较主干中的两个模型属性
compare two model attributes in backbone
我想比较我的集合中的模型属性并将其存储到新模型中。
Collection:
Model1:
Apple: 1
Banana: 0
Orange: 0
Status: 1254869
Model2:
Apple: 0
Banana: 1
Orange: 1
Status: null
输出应为:
ModelResult:
Apple: 1
Banana: 1
Orange: 1
Status: 1254869
有什么想法吗?
我正在手动完成
ModelResult = collection.at(0);
collection.each( function(model){
if(model.get("Apple") != 0){
ModelResult.set({Apple: model.get("Apple")});
}
if(model.get("Banana") != 0){
ModelResult.set({Apple: model.get("Banana")});
}
if(model.get("Orange") != 0){
ModelResult.set({Apple: model.get("Orange")});
}
if(model.get("Status") != ""){
ModelResult.set({Apple: model.get("Status")});
}
});
注意:
是否也可以消除0
或null
ModelResult
上的值?
谢谢。
要消除0
和null
值,您可以使用validate
函数。它总是在调用set
或save
之前调用,如果 valus 与您想要的不匹配,您只需返回错误消息,更改将不会生效。
这也意味着您的ModelResult
必须是一个单独的模型。
var ModelResult = Backbone.Model.extend({
...
validate: function(attrs) {
if (_.intersection([0, null], _.values(attrs))) {
return "Zeroes and nulls are ignored.";
}
},
...
});
现在你的每个函数都可以像
function(model) {
_.each(model.toJSON(), function(value, key) {
ModelResult.set(key, value);
});
}
现在它将遍历每个模型的每个属性并将它们添加到ModelResult
中,但过滤掉所有0
和null
。
希望这有帮助!
相关文章:
- sailsjs在创建两个模型时的错误处理
- 保存两个模型(属于第三个模型)和一个提交
- 使用包含过滤器在环回中连接两个模型
- 比较主干中的两个模型属性
- 在 ng 模型中具有单向绑定的两个输入
- 在一个输入文本框中绑定两个模型名称
- AngularJS - $watch内部的初始化,取决于两个模型
- 我需要在两个模型(rails)之间创建一个新关系,然后通过javascript更改关系模型的属性
- Rails-从两个模型中获取json-格式化json
- 如何使用AngularJs在html中定义两个模型
- 将两个模型与一个模型传递到主干比较器,并进行字母数字排序
- 在主干的一个视图中使用两个模型时出现问题
- 我是否需要在环回中声明两个模型的关系类型?
- Sails.js中两个模型的关联
- 如何在两个模型上重复
- 模板两个模型在一个视图-骨干/木偶
- 关闭和打开两个模型弹出窗口随后在按钮's使用JQuery的Click事件
- 在 SAPUI5 中绑定两个模型
- AngularJS 使用 onSubmit 使用两个模型更新输入
- 是否可以在一个 asp.net mvc 视图中有两个模型