1

由于此更改,新的 RC8 破坏了我的应用程序(虽然是我的错......):

未使用的计算属性不会触发观察者

确实,我有以下情况:

Children belongTo Parent belongsTo GrandParent

当后代更新时,我需要通知 GrandParent。所以在每个模型级别我都有一个这样的计算属性:

// In GrandParent
innerChange: Ember.computed(function(){
}).property('parents.@each.innerChange'),

// In Parent
innerChange: Ember.computed(function(){
}).property('children.@each.innerChange'),

我知道这很糟糕而且不习惯,所以我希望改变它而不是修复它。

编辑:通过“修复它”我的意思是使用初始化钩子并获取属性(参见直观像素答案)。但我认为 RC8 打破这一点表明我所做的不是惯用的。所以我希望以不同的方式来做。

现在在 Ember 中是否有合适的方法来做到这一点?还是必须手动完成?

4

1 回答 1

0

说明有关 rc8 版本的新博客文章可能会对您有所帮助,底部的重要短语以粗体显示

未使用的计算属性不会触发观察者 如果你从来没有得到一个计算属性,即使它的依赖键发生变化,它的观察者也不会触发。您可以想象值从一个未知值变为另一个。这通常不会影响应用程序代码,因为计算属性几乎总是在获取它们的同时被观察到。例如,您获取计算属性的值,将其放入 DOM(或使用 D3 绘制),然后观察它,以便在属性更改后更新 DOM。

如果您需要观察一个计算属性但当前没有检索它,只需在您的 init 方法中获取它。

希望这可以帮助。

于 2013-08-29T15:32:17.167 回答