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