有没有办法比较同一骨干模型的2个不同实例?
答案 0 :(得分:2)
您评论道:
我不想通过传递属性的名称来手动比较属性的值。相反,当我给出模型时,它应该知道这是属性,这是值,然后比较值以知道它是否相等
没有内置方法可以将模型与另一个模型进行比较。但您可以在Backbone.Model
原型上实现一个方法来执行此操作:
Backbone.Model.prototype.equalTo = function(other) {
return _.isEqual(this.attributes, other.attributes);
};
它利用Underscore's isEqual()
来比较两个对象是否相等。 isEqual()
if (m1.equalTo(m2)) {
console.log("equal");
}
已通过internal Backbone data objects attributes
。
然后你可以这样做:
Backbone.Model
如果您不想修改equalTo()
,可以从中扩展并在那里实施var list = new List<string> { "James", "Michael", "Tom", "John" };
。