我有一个ember模型,它定义了两个属性:name和address。如果我从服务器获取模型,我可以使用myVar.get('name')
或myVar.get('address')
访问这些模型,但我注意到我还有myVar.name
和myVar.address
这些都是未定义的。这些是什么,如果我以不同的方式设置我的模型,我可以通过它们访问我的属性吗?
答案 0 :(得分:1)
如果undefined
方法返回定义的值,我无法解释为什么使用点表示法获取get
。但一般来说,由于Ember已经计算了属性,数据绑定和观察者,因此有助于始终如一地使用get
和set
。重构可以更容易,它还支持unknownProperty
处理程序。
来自get的文档:
此方法通常类似于使用object [keyName]或 object.keyName,但它支持计算属性和 unknownProperty handler。
因为get统一了访问所有这些类型的语法 属性,它可以使许多重构更容易,例如替换 具有计算属性的简单属性,反之亦然。
来自set的文档:
此方法通常与调用object [key] = value非常相似 或object.key = value,但它提供对computed的支持 properties,unknownProperty()方法和属性观察者。