2014-01-24 1 views
2

Каков наилучший способ доступа родительского контроллера к его свойствам дочернего контроллера?Лучший способ для родительского контроллера получить доступ к свойствам дочерних контроллеров

Это то, что я до сих пор:

App.ParentController = Ember.ArrayController.extend({ 
    itemController: 'child', 

    total: function(){ 
     return .... whatever  
    }.property('[email protected]') 
}); 

Я бы подумал, что это будет обновляться при выборе изменений, но это не делает. this вытягивать запрос может быть причина.

ответ

0

Вы привязываете массив к контроллеру и должны суммировать некоторые свойства? Вы должны использовать ArrayController и использовать вычисляемое свойство для суммирования значений из каждого элемента массива. Если нет, то я бы нажал это на модель. Кажется неправильным, чтобы родительский контроллер выполнял итерацию над дочерними контроллерами.

+1

Контроллеры, похоже, являются логическим местом для вычисленных свойств, которые не хранятся в данных модели. Если родительский контроллер должен знать о своих вычислительных свойствах для детей, кажется правильным, что он должен иметь доступ к ним? против первого хранения их в модели. например сумма сумм. – TrevTheDev

+1

Также я должен был использовать ArrayController и соответствующим образом изменил его. – TrevTheDev

+1

Проделав еще несколько исследований по этому вопросу, мне кажется, что путаница вождей в ember land - это роли и обязанности различных компонентов MVC. Было бы действительно полезно, если бы кто-то дал окончательное описание каждой роли элементов. [this] (http://emberjs.com/guides/concepts/core-concepts/) неадекватно. Также во многих примерах используются разные элементы для достижения аналогичных результатов, приводящих к большей путанице. – TrevTheDev

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