我決定不使用餘燼數據,因爲它沒有生產準備好,仍在變化。我的應用程序只需要提出一些ajax請求,所以它不應該有太大的區別。我無法理解如何處理ajax承諾響應。AJAX諾言沒有安博數據
當我的用戶加載應用程序,他們已經有一個認證的會話。我正在嘗試爲該用戶信息ping服務器並將其顯示在我的模板中。看起來我的模板在我的ajax請求返回結果之前被呈現,然後不會與promise一起更新。
// 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 2013-03-31 17:16:01
你可以使用promise/jQuery.Deferred。 – mavilein 2013-04-01 20:10:23
@mavilein,你有沒有使用數組的jQuery承諾的例子?我發現我可以爲一個對象使用jQuery承諾,但是當我嘗試爲數組使用承諾時出現類型錯誤。 – 2013-05-29 14:02:59