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