2015-06-02 5 views
0

Если у меня есть ссылка на модель в Ember, как мне получить доступ к ее контроллеру? Если вы находитесь в контроллере и хотите получить доступ к модели, это так же просто, как .get("model"), но обратное, похоже, не удерживается, когда вам нужен контроллер.Получить контроллер для модели в Ember

+0

Таким образом, ваш первый вопрос в том, что доступ к контроллеру модели очень против того, что Эмбер это все о. Вам гораздо лучше использовать вычисляемое свойство или помощник, чтобы получить то, что вам нужно. Что вы пытаетесь сделать в модели, для которой вам нужен доступ к контроллеру? Jsfiddle поможет здесь ... –

+0

Я хотел бы получить доступ к вычисленным свойствам в других контроллерах от данного контроллера в 'hasMany'. В этом случае существует несколько «лет» данных, и в течение любого данного года вам нужно получить доступ к вычисленным свойствам в течение всех других лет. –

+0

Значит, вы собираетесь перекрестными годами? т. е. модель «десятилетия» имеет многолетний «год», и каждый «год» должен получить доступ к вычисленному свойству другого «года»? –

ответ

1

Вы можете рассчитать сводные итоги в родительской модели, например, так:

total: function() { 
    var amount = 0; 
    this.get('years').forEach(function(item) { 
     amount += item.get('total'); 
    }); 
    return amount; 
}.property('[email protected]') 

Где «года» является дочерней моделью от отношений hasMany. Это будет динамически обновляться каждый раз, когда любой из детей меняет значение, используя ключевое слово @each.

Смотреть это полный jsfiddle

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