我想从控制器中获取夹具中的记录总数。这是我的夹具代码:
FIXTURE
App.Items.FIXTURES = [
{
id: 1
},
{
id: 2
},
{
id: 3,
}
];
在这种情况下,灯具总共有3条记录。如何在控制器中获得总数?
答案 0 :(得分:1)
如果您使用的是这样的话:
App.ItemsRoute = Ember.Route.extend({
model: function() {
return this.store.find('items');
}
});
store.find
返回Ember.PromiseProxyMixin个实例,因此您可以观察isFulfilled
属性以了解数据的加载时间:
App.ItemsController = Ember.ArrayController.extend({
doSomethingWithTotal: function() {
var length = this.get('model.length');
// do something with de length
}.observes('model.isFulfilled')
});
答案 1 :(得分:0)
你可以向ArrayController询问属性content
,它会返回一个数组,让你可以访问length
。
这是一个更新的小提琴:http://jsfiddle.net/bYSjD/
App.ItemsController = Ember.ArrayController.extend({
doSomethingWithTotal: function() {
return this.get('content.length')
}.property('content')
});
这样做的方式是App.ItemsRoute
。model
返回一个Promise来查找项目,完成后会调用ItemsRoute
的另一种方法:setupController
。< / p>
Ember将自动为您处理setupController
,它会使用返回的模型数据填充控制器。我会设置content
的{{1}}属性,为您的属性ItemsController
提供真正的价值。