在Ember中,使用Ember.computed.alias('otherProperty')
将属性定义为另一个属性(或另一个对象的属性)的计算别名似乎与使用propertyNameBinding: 'otherProperty'
将其定义为对该属性的绑定具有基本相同的结果
我查看了源代码和文档,但我找不到任何理由为什么一个人会优先于另一个。显然模板使用绑定,这很好,但对于例如控制器,或在视图上引用控制器的属性,是否有区别?
答案 0 :(得分:14)
可以在extend()上覆盖别名,完全消除与其他键的关系。
一个简短的例子:我有一类与时间相关的函数和类,这些类同时具有unit
属性(对于Day,Minute等)和precision
属性。通常这些在功能上是相同的。在一两个班级中他们分道扬.. Ember.computed.alias
允许precision
在大多数情况下为unit
添加别名,但可根据需要使用自己的值覆盖。
请注意,create()将使用别名设置器,而不是覆盖。
此外,在路径中设置带有空对象的别名可能会爆炸,而如果路径不在任何地方,则绑定将不会同步。
根据* Binding语法的软弃用
,请参阅以下 morgoth的评论