オブザーバーを使用して、XHR 後のモデルの変更を観察しようとしています。これは、fn を拡張して super を呼び出すという以前のアプローチが許可されなくなったためです。
私のオブザーバーが起動しないこの奇妙な問題に遭遇しました:
App = Ember.Application.create({
ready: function () {
console.log('Ember Application ready');
this.topCampaignsController = Ember.ArrayController.create({
content: null
});
App.TopCampaignsModel.create({
// Calling super is no longer allowed in object instances
//success: function () {
// this._super();
// App.topCampaignsController.set('content', this.get('data'));
//},
onDataChange: function () {
console.log('data property on the object changed');
App.topCampaignsController.set('content', this.get('data'));
}.observes('data')
});
}
});
App.TopCampaignsModel = Ember.Object.extend({
data: null,
// this will be actually called from an XHR request
success: function () {
this.set('data', [5,10]);
},
init: function () {
console.log('TopCampaignsModel created');
this.success();
console.log(this.get('data'));
}
});
Jsfiddle はこちら: http://jsfiddle.net/gdXfN/26/
コンソールが「変更されたオブジェクトのデータ プロパティ」をログに記録しない理由がわかりません。私のインスタンスで「成功」fnをオーバーライドする方法について、代替アプローチを受け入れます。