Я использую ember.js 1.2 и сталкиваюсь с проблемой при попытке отобразить загрузку счетчика и уведомлений во время операций crud на моих моделях.Emberjs: как отображать загрузочные счетчики и уведомления о работе модели
Вот код:
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с, но операция сохранения выполняется с меньшей длительностью и счетчик отображается и немедленно исчезает. Здесь я хотел бы установить таймер 1s, прежде чем операция сохранения вызывается на моей модели, чтобы убедиться, что анимация выполнена правильно. Как это возможно?
Во-вторых: метод успеха на моем объекте Flash привязан к определенному {{view.message}} шаблону. Если я вызову этот метод вне «затем» обещания, сообщение будет хорошо отображаться, но в моем случае это не так, как будто привязка не выполняется. Я что-то пропустил, чтобы использовать обещание? Как можно отобразить это сообщение?