2013-05-10 4 views
0

Какой рекомендуемый шаблон для отображения невыгруженного промежуточного результата в ожидании медленных вызовов AJAX?Ember.js - Задержка обновления до завершения вызова ajax

E.g. У меня есть контроллер такого кода:

this.set('content', function() { Model.find(/* return some long running operation */) }); 

И в то время как приложение ждет этой функции, чтобы вернуть некоторые данные, которые он устанавливает содержание страницы на пустой объект.

В идеале, если уже загружен контент, который будет отображаться до тех пор, пока новый контент не будет готов к визуализации. Каков наилучший способ достичь этого?

ответ

0

я этого достиг, как так (это в мой контроллер при загрузке нового объекта):

var _this = this; 
search = App.ModelObject.find(...); 
search.addObserver('property_that_exists_on_loaded_+object', function (search) { 
    _this.set('content', search); 
}); 

я не уверен, но это может быть не хватает какой-то код, чтобы удалить наблюдателя после того, как он загружен, который это то, что большинство примеров использования addObserver сделать.

Я также не уверен, что это не сработает, если это свойство будет обновлено до регистрации addObserver объекту.

1

Обещания - хороший образец для этого.

var _this = this; 
App.ModelObject.find(...).then(function(results){ 
    _this.set('content', results) 
} 

Вы не говорите, если ModelObject#find что-то вы реализуете себя, или если вы используете библиотеку, так что обещание может быть что-то для вас из коробки или что-то вы бы реализовать себя с помощью Ember. ПРОСЬБА ОТВЕТИТЬ.