テーブルモデルの奥深くで変更が発生したことを検出するオブザーバーを構築しようとしています。「rows。@each.label」では通知を受け取ることができますが、「rows。@each.cols。@each.label」では通知を受け取ることができません。
App.Row = Ember.Object.extend({
init: function () {
this.set('cols', []);
}
});
App.Col = Ember.Object.extend({
label: null
});
var doneWithSetup = false;
var table = Ember.Object.create({
rows: [],
colLabelChanged: function () {
if (doneWithSetup) console.log("IT WORKED! I got notified when a col label changed");
}.observes("rows.@each.cols.@each.label")
});
var row = App.Row.create({});
var col1 = App.Col.create({ label: "Label 1" });
var col2 = App.Col.create({ label: "Label 2" });
row.get('cols').pushObject(col1);
row.get('cols').pushObject(col2);
table.get('rows').pushObject(row);
// OK, lets try this observer out...
doneWithSetup = true;
col1.set('label', 'some new label');
// FIXME: how do I get colLabelChanged to fire???
ここで試すことができます:
私は何か間違ったことをしていますか、それともマルチレベルの@eachオブザーバーはサポートされていませんか?