1

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 プロパティが変更された場合に自動的に起動する必要があるため、ボタンのクリック時にオブザーバー内の関数を手動でオフにすることに頼ることはできません。

4

2 に答える 2