Emberjs: как отобразить загрузочный счетчик и уведомления о работе модели
Я использую ember.js 1.2 и сталкиваюсь с проблемой при попытке отобразить загрузку счетчика и уведомлений во время неработающих операций на моих моделях
Вот код:
var MyModelController = Ember.ObjectController.extend({
needs: ['application'],
application: Ember.computed.alias("controllers.application"),
actions: {
save: function() {
var _this = this;
// Display the spinner
this.get('application').get('loading').trigger(true);
this.get('model').save().then(function(response) {
// Hide the spinner
_this.get('application').get('loading').trigger(false);
// Display the success message
_this.get('application').get('flash').success('The model has been updated.');
}, function(response) {
// Hide the loading spinner
_this.get('application').get('loading').trigger(false);
// Display the error message
_this.get('application').get('flash').danger('Error updating the model.');
});
}
}
});
Две основные проблемы здесь:
Во-первых: счетчик отображается с переводом, который занимает 0,5 с, но операция сохранения выполняется с меньшей длительностью, а счетчик отображается и сразу исчезает. Здесь я хотел бы установить таймер на 1 с до вызова операции сохранения в моей модели, чтобы обеспечить правильное выполнение анимации. Как это могло быть возможно?
Второе: метод успеха моего flash-объекта связан с конкретным {{view.message}} в шаблоне. Если я вызываю этот метод за пределамизатем' обещание, сообщение хорошо отображается, но в моем случае это не так, как если бы привязка не была сделана. Я что-то упустил, чтобы использовать обещание? Как можно отобразить это сообщение?