17

在 Ember 中,将属性定义为另一个属性(或另一个对象的属性)的计算别名 usingEmber.computed.alias('otherProperty')似乎与使用propertyNameBinding: 'otherProperty'.

我查看了源代码和文档,但我找不到任何理由说明为什么其中一个比另一个更受欢迎。显然模板使用绑定,这很好,但是对于控制器中的属性,或者在视图上引用控制器的属性,有区别吗?

4

1 回答 1

14

可以在extend() 上覆盖别名,从而完全消除与其他键的关系。

一个简单的例子:我有一个与时间相关的函数和类,这些类既有一个unit属性(用于 Day、Minute 等),也有一个precision属性。通常这些在功能上是相同的。在一个或两个类别中,它们是不同的。Ember.computed.alias在大多数情况下允许precision使用别名unit,但可以根据需要用自己的值覆盖。

请注意, create() 将使用别名设置器,而不是覆盖。

此外,在路径中设置一个带有空对象的别名可能会崩溃,而如果路径没有通向任何地方,绑定将根本不同步。

请参阅下面对 *Binding 语法的软弃用的 morgoth 评论

于 2013-03-06T21:36:49.327 回答