我遇到了計算屬性的問題。ajax請求期間的計算屬性
這是一個複雜的操作ArrayController
。問題是,Ember試圖在數據加載之前計算它。例如,它的一部分是
var counts = this.getEach('hours').forEach(function(hours) {
var d = hours.find(function(_hour) {
return +(_hour.date.substring(11, 13)) === 10;
});
return d.count;
});
因爲AJAX請求加載時this.getEach('hours')
回報像
[ Array[24], undefined ]
我得到一個錯誤,所以代碼中斷。
我確信其他人已經遇到過這個 - 有什麼解決方案?
更新:以下是我如何獲取數據。當用戶在視圖中點擊一個月時,我將點擊的月份ID傳遞給我的MonthsController
。它有一個toggleMonth
方法:
App.MonthsController = Ember.ArrayController.extend({
toggleMonth: function(id) {
var month = App.Month.find(id),
index = this.indexOf(month);
if (index === -1) {
this.pushObject(month);
} else {
this.removeAt(index);
}
}
});
App.Month.find(id)
發送正確的Ajax請求+數據的回報,但也許這並不是填充個控制器的正確方法。
而且,這是IndexRoute
內發生的(即我對MonthsController
所以沒有單獨的路線,我從來沒有指定MonthsController
模型鉤或setupController
你可以顯示,你是如何發送ajax和填充小時數組? –
如果您沒有在模型鉤子中返回承諾,則會發生這種情況。你的路線是什麼樣子的? –
@DarshanSawardekar更新,謝謝你們。 –