0

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

夹具

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

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

4

2 回答 2

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/

于 2013-09-30T15:21:50.930 回答
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

Ember 将自动setupController为您处理,它使用返回的模型数据填充控制器。的content属性ItemsController将被设置,给你的属性doSomethingWithTotal一个真正的价值。

于 2013-09-30T17:53:12.033 回答