ember.js 1.2を使用しています。私のモデルでのクラッシュ操作中にローディングスピナーと通知メッセージを表示しようとしているときに問題が発生しました。ここで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秒を要する訳で表示されますが、保存操作は以下の期間で行われますスピナーが表示され、すぐに消えます。ここでは、アニメーションが正しく実行されるように、モデルで保存操作が呼び出される前に1秒タイマーを設定したいと考えています。どうすればそれが可能なのでしょうか?
2番目:my flashオブジェクトのsuccessメソッドは、テンプレートの{{view.message}}にバインドされています。私がこのメソッドを「約束」の外に呼び出すと、メッセージはうまく表示されますが、私の場合はバインディングが行われていないかのようにはなりません。私は約束を使うために途中で何かを逃しましたか?このメッセージを表示するにはどうしたらいいですか?