http://documentcloud.github.io/backbone/#Model-id表示id
的{{1}}属性很特殊,因为如果调用model
,my_model.set("id", <new_id>)
将具有该新值。但是,这个属性不是可交换的。致电my_model.id
后跟my_model.id = 4
将不会产生4。
有没有办法让my_model.get("id")
设置my_model.id=4
的值,以便my_model.attributes.id
会产生4?
答案 0 :(得分:1)
要实现你想要的,你可以覆盖Backbone.Model的get方法,但这不是一个很好的命题,因为有一个原因,为什么属性的模型id和id属性是相互分离的,模型的id是骨干本地的东西,属性的id属性是同步模型时远程服务器可能使用的东西。
因此,在通常情况下,覆盖Model的get函数可能会在将来引发麻烦。
答案 1 :(得分:0)
你可以达到你想要的效果:
Backbone.Model.prototype.get = function(attr) {
if (attr == 'id' && this.attributes[attr] != this.id) {
this.attributes[attr] = this.id;
}
return this.attributes[attr];
};