ユーザーのクリックでスワップアウトされるデータの表示を処理するために ArrayController を使用しようとしています。現在、このエラーUncaught Error: Assertion Failed: The value that #each loops over must be an Array. You passed App.CurrentListController
が発生していますが、Ember Inspector を見ると、CurrentListController が表示され、モデルとデータが含まれています。基本的に、統計ページでは一連の統計を確認でき、特定の統計をクリックするとモーダルがポップアップし、その統計に関連するすべてのレコードが表示されます。レコードを StatController に保存するだけでは問題なく動作しますが、ArrayController を使用して並べ替え/フィルター処理を行うことはできません。したがって、 CurrentListController の内容を表示しようとするときを除いて、すべて機能します。
助けや指示をありがとう。
現在のリストコントローラー:
App.CurrentListController = Ember.ArrayController.extend({
sortProperties: ['name'], //Initial sort column.
sortAscending: true,
});
StatController:
App.StatController = Ember.ObjectController.extend({
needs:['currentList'],
currentList:[],
actions: {
viewBusiness: function(ids) {
console.log(ids)
var self = this
console.log(this.get('controllers.currentList').get('sortProperties'))
this.store.findByIds('business', ids.split(",")).then(
function(results)
{
$('#editModal').modal('show');
//self.set('currentList', results.sortBy(["name"]))
self.get('controllers.currentList').set('model', results)
console.log(self.get('controllers.currentList').get('arrangedContent'))
});
},
sortBy: function(prop){
var clController = this.get('controllers.currentList')
clController.set('sortProperties', prop)
clController.set('sortAscending', !clController.get('sortAscending'));
}
}
});
統計テンプレート:
{{#each business in App.CurrentListController}}
<tr {{bind-attr id=business.id}}>
<td>{{business.name}}</td>
<td>{{business.city}}</td>
<td>{{business.state}}</td>
<td>{{business.zip}}</td>
<td class="text-center">{{business.numVendors}}{{/link-to}}</td>
<td class="text-center">{{business.numClients}}{{/link-to}}</td>
</tr>
{{/each}}