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

Ember.PromiseProxyMixinstore.findインスタンスを返すため、プロパティを観察して、データがいつ読み込まれたかを知ることができます。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

更新された Fiddle は次のとおりです: 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 に答える