3
我試圖在Ember.js應用程序中構建一個非阻塞的異步調用而不使用Ember數據。Ajax沒有餘燼數據 - 未捕獲TypeError:對象#<Object>沒有方法'forEach'
我有以下Ember.js型號:
App.Player = Ember.Object.extend({
id: '',
alias: '',
name: '',
twitterUserName: '',
isFeatured: ''
});
App.Player.reopenClass({
getPlayers: function() {
var players = Ember.ArrayProxy.create({ content: [] });
$.getJSON("/api/players").then(function (response) {
response.forEach(function (p) {
players.pushObject(App.Player.create(p));
});
});
return players;
}
});
我打電話來它作爲我的路線如下:
App.IndexRoute = Ember.Route.extend({
model: function (params) {
return App.Player.getPlayers();
}
});
出於某種原因,我得到了以下JavaScript錯誤:
Uncaught TypeError:Object#has no method'forEach'
我已經建立了d我見過的幾個變體,但似乎沒有任何工作。任何幫助,將不勝感激......
編輯 - 發現與噶大山一些幫助解決,這裏的工作代碼:
App.Player.reopenClass({
getPlayers: function() {
var players = [];
$.ajax({
url: "/api/players",
}).then(function (response) {
response.players.forEach(function (player) {
var model = App.Player.create(player);
players.addObject(model);
});
});
return players;
}
});
是的,你認爲正確的JSON格式。你的解決方案完美運作非常感謝。 – Bevan
其實我發現一個問題,你的解決方案似乎阻止加載頁面。我怎樣才能繼續加載其餘的ember.js頁面而不等待Web服務響應呢? – Bevan
無論如何,我找到了一種方法。我將在上面的帖子中添加解決方案。 – Bevan