主題はそれをすべて言います。配列の要素のプロパティの変化を観察しています:
onChange: function() {
//
}.observes(content.@each.selected)
どの要素が追加および削除されているかを正確に知りたいです。いくつかの実験の後、観測関数に 3 つのパラメーターを追加できることがわかりましたが、いずれも追加/削除される要素ではありません。
配列のコピーを保持してから、新しい配列と手動で比較するよりも簡単な解決策はありますか?
主題はそれをすべて言います。配列の要素のプロパティの変化を観察しています:
onChange: function() {
//
}.observes(content.@each.selected)
どの要素が追加および削除されているかを正確に知りたいです。いくつかの実験の後、観測関数に 3 つのパラメーターを追加できることがわかりましたが、いずれも追加/削除される要素ではありません。
配列のコピーを保持してから、新しい配列と手動で比較するよりも簡単な解決策はありますか?
変更前のコンテンツを保存して、変更後のコンテンツと比較できます。
willChange: function() {
this.contentBeforeSelectedChange = this.get('content').slice(0);
}.observesBefore('content.@each.selected')
onChange: function() {
var content = this.get('content');
var oldContent = this.contentBeforeSelectedChange.toArray();
var whichChanged = content.find(function(item, index){
var oldItem = oldContent[index].get('selected');
return item.get('selected') !== oldItem.get('selected');
});
}.observes(content.@each.selected)