Я новичок в Ember, и я вытягиваю свои волосы из-за этого.Обмен данными между контроллерами в Ember
Приложение, над которым я работаю, имеет набор «предупреждений», которые будут динамически обновляться. У меня есть шаблон предупреждений/контроллер/модуль, все работают нормально. Контроллер предупреждений имеет способ отображения количества предупреждений, которые не были уволены. Это отлично работает в шаблоне предупреждений.
Однако, когда я доступ к этому же методу из другого контроллера, он всегда возвращает 0.
Here's a pastebin with the controllers, templates and model
Спасибо за любую помощь!
UPDATE:
я обнаружил, что если я на самом деле загрузить оповещение просмотра, а затем вернуться к просмотру дома, контроллер оповещения начинает возвращение правильного значения. Поэтому, по-видимому, проблема связана с тем, что данные прибора не готовы, когда контроллер меню обращается к этому методу. Я еще не смог понять, почему.
Ах, это потому, что ваш AlertRoute настраивает модель. Если вы просто посетите Home, Ember не знает, чтобы загрузить модель - даже с вычисленным «оставшимся» свойством. По крайней мере, это моя догадка. Поместите некоторый console.log в крюк 'AlertsRoute.model' и посмотрите, будет ли он вызван. ...Я сомневаюсь в этом. –
Я обновил свой ответ, чтобы показать, как вы можете настроить свою модель в 'AlertsController' –
. Вы правы, что метод модели AlertsRoute не вызывался. Однако, добавив метод init, который вы предложили, я обнаружил, что, пока метод init вызывается до вызова остающегося метода, self.set ('model', model); не вызывается до тех пор, пока оставшийся метод уже не будет вызван, заставляя его по-прежнему возвращать 0; –