我决定不使用 ember-data,因为它还没有准备好生产并且仍在变化。无论如何,我的应用程序只需要发出一些 ajax 请求,所以它不应该有太大的不同。我无法理解如何处理 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>
当我收到响应或延迟渲染直到我收到响应时,我将如何更新模板?