假设我有一个 hasMany 关系 Procedure => hasMany Steps,带有 async:true,并且我有一个名为 procedure-main 的过程组件(在过程路由上),它列出了如下步骤:
{{#each steps as |step| }}
{{step.title}}
{{/each}}
我需要在任何步骤上更改 stepStatus 时观察每个步骤的属性(例如 stepStatus)。在 Ember 1.7 中,我在过程控制器上有这样的东西:
stepsStatusObserver: function(){
...
}.observes('steps.@each.stepStatus')
这是在任何步骤上的 stepStatus 更改时触发的,并且每当状态更改时,我在此函数中所拥有的任何内容都会被触发。但是,在 Ember 2.3 中,我无法实现这一点。我试过了
stepsStatusObserver: Ember.observer('steps.[].stepStatus', function(){
...
})
但这只会在页面上列出步骤时触发一次。当我将一个步骤的状态更改为新值时,该函数永远不会被触发。
如何在 Ember 2.3 中复制此功能?
注意:在我的用例中,我不能依靠单击按钮手动设置观察者内部的功能,因为如果在任何步骤上更改了 stepStatus 属性,它必须自动触发。