У меня есть два контроллера, которые загружаются в один и тот же выход, поэтому только один может быть активным за один раз. Оба наблюдения свойства на третий контроллер, как это:Как узнать, какой контроллер загружен в розетку
App.SearchController = Ember.ObjectController.extend({
needs: ['navigation'],
updateResults: function() {
console.log('load search data');
}.observes('controllers.navigation.search')
});
Полного образец
Если свойство изменяет некоторые данные извлекаются. Если я нажимаю на обе ссылки, чтобы оба они были загружены, то при изменении свойства оба контроллера получают событие наблюдения и загружают данные. Я хотел бы загрузить данные только в том, что видно.
Как узнать, какой контроллер в настоящее время активен и загрузить данные только в активном состоянии?
Вы упомянули, я мог бы инвертировать отношения, как я могу это сделать? Я имею в виду, как я могу получить активный контроллер в NavigationController? –
'нуждается в [' active '] 'в' NavigationController', а затем у вас есть 'controllers.active'. – Wildhoney
Определите свойство (скажем, 'active') на 'NavigationController', которое установлено из hookController на' SearchRoute' и 'ImagesRoute', например:' this.controllerFor ('navigation'). Set ('active', controller); '- тогда вы можете наблюдать изменения в поле поиска из' NavigationController' и вызывать соответствующие методы на том, какой контроллер активен. –