各モデルの特定のプロパティの変化を観察ArrayControllerする があります。私はその目的のために使用します:.observes('content.@each.someprop')
App.ListController = Em.ArrayController.extend({
content: [],
myObserver: function () {
//check changed property
//do stuff if changed to some specific value
}.observes('content.@each.someprop')
});
これまでのところ、モデルのプロパティが変更されると、オブザーバーが起動します。ただし、起動すると、どのモデルが変更されたのかわかりません。モデルを反復処理し、そのプロパティを別の場所に保存されている古い値と比較して把握する必要がありますが、これは非常に不器用で非効率的です。オブザーバーが受け取るをチェックしようとしましたが、argumentsそれらも役に立ちませconsole.log(arguments)ん。[Class, "content.@each.someprop"]console.log(arguments[0].toString())<App.ListController:ember366>
私の質問は、配列の@eachプロパティを観察するときにどのモデルが変更されたかを知る方法はありますか?
アップデート
オブザーバーが起動したら、監視対象のプロパティが特定の値に変更されたかどうかを確認し、変更された場合は何らかの処理を行います。
提案されたように、私は今チェックしitemControllerます。