2013-09-30 2 views
0

Я хотел бы получить общее количество записей в моем устройстве от моего контроллера. Вот мой светильник Код:Как получить общее количество записей в устройстве с контроллера?

FIXTURE

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

В этом случае, есть 3 Всего записей в арматуре. Как получить эту сумму в моем контроллере?

ответ

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/

+0

Мне нужно получить доступ к длине прибора в моем контроллере. Как мне получить к нему доступ? –

+0

Извините, теперь я вижу, я его обновляю :) –

+0

Ok @TimJahn Я обновил, пожалуйста, посмотрите –

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 действительное значение.

+0

Что делать, если мой контроллер использует ObjectController? Кажется, не работает. –

+0

ObjectController содержит только один объект, а не массив объектов. – atsjj

Смежные вопросы