Backbone模型new vs unsaved

时间:2012-03-08 21:25:20

标签: model backbone.js

我有一个骨干视图,可以将模型渲染到屏幕上。当模型(IsNew)我必须从this.model.attributes.distance中取出我的距离值,否则不会超出this.model.distance 那是为什么?

所以代码中的某处我有这个:

if(!this.model.distance)
    distance = this.model.attributes.distance
 else
    distance = this.model.distance;

在我看来,这是一个丑陋的解决方案,可能有更好的方法。 有线索吗?

2 个答案:

答案 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为模型准备的所有逻辑和流程,包括事件通知和验证。建议您使用setget方法,而不是直接访问属性。