我有一个骨干视图,可以将模型渲染到屏幕上。当模型(IsNew)我必须从this.model.attributes.distance中取出我的距离值,否则不会超出this.model.distance 那是为什么?
所以代码中的某处我有这个:
if(!this.model.distance)
distance = this.model.attributes.distance
else
distance = this.model.distance;
在我看来,这是一个丑陋的解决方案,可能有更好的方法。 有线索吗?
答案 0 :(得分:0)
var distance = this.model.get('distance')
答案 1 :(得分:0)
您可能错误地获取并设置了值。
设置值:this.model.set({name: "value"})
获取值:this.model.get("value")
set
方法接受JSON文档作为参数,并允许您指定要分配的多个属性:
this.model.set({foo: "bar", baz: "quux"})
get
方法只允许您按名称指定一个值。
通过直接访问model.attributes,您将绕过Backbone为模型准备的所有逻辑和流程,包括事件通知和验证。建议您使用set
和get
方法,而不是直接访问属性。