Ember.js:可以避免this.get('attr')?

时间:2012-02-03 01:05:06

标签: ember.js

我的Ember.js模型,视图和控制器类变得有点冗长。部分原因来自于撰写this.get('attr')而非this.attr

只要直接声明属性而不是通过绑定声明属性,总是只写this.attr是否可以?

(我知道设置是一个不同的问题 - 您必须调用this.set('attr', value)才能更新相关属性和模板。)

3 个答案:

答案 0 :(得分:5)

IIRC,您可以为您知道无法观察的私人财产执行此操作。

约定是在私有属性前加上下划线(例如_myProperty),告诉Ember不要绑定它。

查看.get()的文档,或者如果您愿意,请查看source code

答案 1 :(得分:3)

如果正在观察或绑定该属性,则不要执行'this.attr'。 get命令是触发观察者和绑定的关系。

答案 2 :(得分:0)

该问题的先前答案在Ember的最新版本中已过时。从2018年4月发布的3.1开始,原生ES5吸气剂也可以用于计算属性。在Ember 3.1中,this.get('attr')是对象使用unknownProperty,是Ember Data PromiseProxyObject,还是与路径一起使用,并且路径的某些元素可能不是对象。有关详细信息,请参阅release notes。在这种情况下,您会得到有用的断言。