我正在使用ember.js 1.2并在尝试在模型上的crud操作期间显示加载微调器和通知消息时遇到问题.
这是代码:
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}}.如果我在promise的’then’之外调用此方法,则会很好地显示消息,但在我的情况下,并不是绑定没有完成.我是否错过了使用承诺的方式?怎么可能显示这条消息?