在 Ember 中,将属性定义为另一个属性(或另一个对象的属性)的计算别名 usingEmber.computed.alias('otherProperty')
似乎与使用propertyNameBinding: 'otherProperty'
.
我查看了源代码和文档,但我找不到任何理由说明为什么其中一个比另一个更受欢迎。显然模板使用绑定,这很好,但是对于控制器中的属性,或者在视图上引用控制器的属性,有区别吗?
在 Ember 中,将属性定义为另一个属性(或另一个对象的属性)的计算别名 usingEmber.computed.alias('otherProperty')
似乎与使用propertyNameBinding: 'otherProperty'
.
我查看了源代码和文档,但我找不到任何理由说明为什么其中一个比另一个更受欢迎。显然模板使用绑定,这很好,但是对于控制器中的属性,或者在视图上引用控制器的属性,有区别吗?
可以在extend() 上覆盖别名,从而完全消除与其他键的关系。
一个简单的例子:我有一个与时间相关的函数和类,这些类既有一个unit
属性(用于 Day、Minute 等),也有一个precision
属性。通常这些在功能上是相同的。在一个或两个类别中,它们是不同的。Ember.computed.alias
在大多数情况下允许precision
使用别名unit
,但可以根据需要用自己的值覆盖。
请注意, create() 将使用别名设置器,而不是覆盖。
此外,在路径中设置一个带有空对象的别名可能会崩溃,而如果路径没有通向任何地方,绑定将根本不同步。
请参阅下面对 *Binding 语法的软弃用的 morgoth 评论