Я пытаюсь использовать наблюдателей для наблюдения за изменениями на моей модели после 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 в моем экземпляре.
Почему вы хотите привязать обработчик успеха к запросу AJAX? Это не идиоматично в ember. Если вы пытаетесь наблюдать за созданием или обновлением модели на сервере, это лучший способ. – buuda
Я не использую данные ember. Все уши приближаются к этому. – Rajat