ember-data は本番環境に対応しておらず、まだ変化しているため、使用しないことにしました。とにかく、私のアプリはいくつかの ajax リクエストを行うだけでよいので、それほど大きな違いはありません。ajax promise 応答の処理方法がわかりません。
ユーザーがアプリをロードすると、認証済みのセッションが既に存在します。そのユーザー情報についてサーバーに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>
応答を受け取ったとき、または応答があるまでレンダリングを遅らせたときにテンプレートを更新するにはどうすればよいですか?