2013-02-16 7 views
1

Я пытаюсь понять, как я создам привязывающее или вычисленное свойство, которое представляет собой количество объектов, которые у меня есть. Я могу получить номер (я думаю) с помощью:Привязывается к количеству объектов

App.MyObject.all().get("length") 

Когда я создаю свойство контроллера с этим внутри функции она не обновляется больше объектов загружаются.

numOfMyObjects: function(){ 
    return App.MyObject.all().get("length"); 
}.property() 

Сейчас у меня есть это в моей ApplicationController, но он просто показывает 0.

Я хотел бы знать, как сделать это для всех объектов, а затем и для отфильтрованного набора объектов ,

Спасибо.

ответ

1

Вы должны сообщить об этом Ember, по каким свойствам он должен соблюдаться, чтобы запустить метод numOfMyObjects. Например:

numOfMyObjects: function(){ 
    return App.MyObject.all().get("length"); 
}.property('myArray.length'); 

Однако, это не будет работать в вашем случае, потому что у вас есть App.MyObject в самом контроллере, вместо этого вы хотите быть инструктажем соответствующего маршрута, какая модель (s) контроллер должен представлять.

Таким образом, на самом деле вам не нужно будет создавать вычисленное свойство, потому что у вас будет доступ к model в ваших ручных панелях.

Пожалуйста, смотрите JSFiddle я вместе взятые в качестве примера: http://jsfiddle.net/ESkkb/

Основная часть кода находится в IndexRoute:

App.IndexRoute = Ember.Route.extend({ 
    model: function() { 
     return App.Cat.find(); 
    } 
}); 

Мы говорим о IndexController, что она должна представлять всех кошек. И тогда, когда мы сделали это, мы можем вывести кошек на наш взгляд, или в нашем случае, количество кошек:

Count: {{length}} 
+0

Моя проблема заключается в том, что я никогда не отображая все 'MyObject's в одно время. Они отображаются по частям на нескольких видах. – RyanJM

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