私はember-dataを生産準備中でなく変更していないため、使用しないことに決めました。私のアプリは、とにかくいくつかのAjaxリクエストを作成する必要がありますので、それほど大きな違いはありません。私は、ajaxの約束の対応をどのように扱うかを理解するのに問題があります。EmberデータのないAJAX約束
ユーザーがアプリを読み込むと、すでに認証済みのセッションがあります。私は、そのユーザー情報のためにサーバーにpingして、テンプレートに表示しようとしています。私のajaxリクエストが結果を返す前に、テンプレートがレンダリングされてから、約束通りに更新されないようです。私のテンプレートで
// route
App.ApplicationRoute = Ember.Route.extend({
setupController: function(){
this.set("currentUser", App.User.getCurrentUser());
}
});
// model
App.User = Ember.Object.extend({
email_address: '',
name_first: '',
name_last: '',
name_full: function() {
return this.get('name_first') + ' ' + this.get('name_last');
}.property('name_first', 'name_last')
});
App.User.reopenClass({
getCurrentUser: function() {
return $.ajax({
url: "/api/get_current_user",
type: "POST",
data: JSON.stringify({})
}).then(function(response) {
return response;
});
}
});
:
<h1> Hey, {{App.currentUser.name_first}}</h1>
どのように応答を持ってまで、私が応答または遅延レンダリングを受信したとき、私はテンプレートを更新しますか?
#3が完了したときにわかる方法はありますか? #3が完了したときにコントローラメソッドを呼び出す。 .observes()は役に立ちません。 – Rushi
promise/jQuery.Deferredを使用できます。 – mavilein
@mavilein、配列にjQuery約束を使用した例がありますか?私はオブジェクトに対してjQueryの約束を使うことができることを発見しましたが、配列に対して約束を使用しようとすると型エラーが発生します。 –