2015-03-26 4 views
0

Внутри другого контроллера я получаю контроллер приложения, как следующее (как это определено с помощью потребности):Как можно вызвать метод другого контроллера в ember.js?

appCtrl = this.get('controllers.application'); 

доступ или настройки свойств работает нормально, например,

appCtrl.set("property", true); 

вызовет зарегистрированных слушателей.

Но я не могу назвать метод контроллера приложения, например. предположим, что в контроллере приложения существует функция x. Тогда следующий вызов не удается, как appCtrl не содержит функции х:

appCtrl.x(); 

Я также попытался определения х как действие в контроллере приложения и запуска извне следующим образом:

appCtrl.send("x"); 

Это также не работает ,

Как я могу назвать функцию контроллера приложения с другого контроллера?

+0

не знаю, почему он не работает, но то, что вы пытаетесь достичь? может быть лучшим способом с действиями. –

+0

Я также пробовал его с действиями. Ошибка функционально идентична. В нем говорится, что в моей консоли не было ответа на действие. –

+0

Я имею в виду, что есть определенные обходные пути. Данные могут передаваться по-разному, но это делает код излишне раздутым, и я просто задавался вопросом, почему это не работает. –

ответ

1

Я пробовал что-то простое и, похоже, не имел проблемы. Вот JSbin:

http://emberjs.jsbin.com/borejamufo/3/edit?html,js,console,output

+0

Хм, интересно. Это своего рода разум. Хотя моя установка немного сложнее с ember-cli, нет принципиальной разницы ... Спасибо, по крайней мере, я знаю, что теперь она должна работать в принципе. –

+1

Хорошо, я это нашел. У меня тупо была опечатка в имени моего приложения контроллера приложения, и поскольку я использовал его только для свойств, прежде чем я не заметил, что он никогда не загружался ... :( Спасибо, что вернул меня в нужное русло. –

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