如何从控制器获取夹具中的记录总数?

时间:2013-09-30 15:00:27

标签: javascript ember.js ember-data javascript-framework

我想从控制器中获取夹具中的记录总数。这是我的夹具代码:

FIXTURE

App.Items.FIXTURES = [
 {
    id: 1
 },
 {
    id: 2
 },
 {
    id: 3,
 }
];

在这种情况下,灯具总共有3条记录。如何在控制器中获得总数?

2 个答案:

答案 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')
});

喜欢此示例http://jsfiddle.net/marciojunior/UeCWV/

答案 1 :(得分:0)

你可以向ArrayController询问属性content,它会返回一个数组,让你可以访问length

这是一个更新的小提琴:http://jsfiddle.net/bYSjD/

App.ItemsController = Ember.ArrayController.extend({
  doSomethingWithTotal: function() {
    return this.get('content.length')
  }.property('content')
});

这样做的方式是App.ItemsRoutemodel返回一个Promise来查找项目,完成后会调用ItemsRoute的另一种方法:setupController。< / p>

Ember将自动为您处理setupController,它会使用返回的模型数据填充控制器。我会设置content的{​​{1}}属性,为您的属性ItemsController提供真正的价值。