私は Ember を使用しており、次のコードは api.php スクリプトから JSON を取得し、結果をテンプレートに表示します。getJSON 関数を .then() の代わりに .done() を使用するように変更すると、スクリプトが壊れるのはなぜですか? 次のエラーが表示されます。
:Uncaught エラー: アサーションが失敗しました: Ember.CollectionView のコンテンツは Ember.Array を実装する必要があります。[object Object] を渡しました。
関数の実行中に response.items オブジェクトをログに記録すると、コンソールに同じ結果が表示されるので、Ember がこれをどのように異なる方法で解釈しているかに興味があります。
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.Item.all();
}
});
App.Item = Ember.Object.extend();
App.Item.reopenClass({
all: function() {
return $.getJSON("api.php").then(function(response) {
var items = [];
response.items.forEach( function (item) {
items.push( App.Item.create(item) );
});
return items;
});
}
});