我想从我的控制器中获取我的夹具中的记录总数。这是我的夹具代码:
夹具
App.Items.FIXTURES = [
{
id: 1
},
{
id: 2
},
{
id: 3,
}
];
在这种情况下,夹具中总共有 3 条记录。如何在我的控制器中获得该总数?
我想从我的控制器中获取我的夹具中的记录总数。这是我的夹具代码:
夹具
App.Items.FIXTURES = [
{
id: 1
},
{
id: 2
},
{
id: 3,
}
];
在这种情况下,夹具中总共有 3 条记录。如何在我的控制器中获得该总数?
如果你正在使用这样的东西:
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')
});
您可以向 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
。
Ember 将自动setupController
为您处理,它使用返回的模型数据填充控制器。的content
属性ItemsController
将被设置,给你的属性doSomethingWithTotal
一个真正的价值。