EmberJS RC8:如何在孩子更新时通知父模型?

时间:2013-08-29 15:14:42

标签: ember.js

由于这一变化,新的RC8打破了我的应用程序(我的错...):

  

UNCONSUMED COMPUTED PROPERTIES DO NOT TRIGGER OBSERVERS

确实,我有以下情况:

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'),

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

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

现在在恩伯有没有正确的方法呢?或者它必须手动完成吗?

1 个答案:

答案 0 :(得分:0)

说明关于rc8重播的new blog post可能对您有帮助,粗体底部的重要短语:

  

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

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

希望这有帮助。