Я использую контроллер визуализации в моем приложении, и у меня возникли проблемы с пониманием логики вокруг создания контроллера.render helper и экземпляр Controller
Код в вопросе использует это (усеченную) шаблон (используя emblem.js):
.span4
render "learningNeeds" # models loaded in learningNeeds controller
.span8
render "notices" student.room.notices # student is defined on the top-level controller
render "observations" # models loaded in observations controller
и setupController для шаблона маршрута:
App.ParentRoute = Ember.Route.extend
setupController: (controller, model) ->
console.log "ParentRoute setupController"
controller.set('student', model.get('students').objectAt(0))
@set('controller.controllers.observations.showFilters', true) # this works
@set('controller.controllers.learning_needs.showFilters', true) # this works
@set('controller.controllers.notices.showAdd', true) # this doesn't work
App.currentUser = model
я устанавливаю содержимое контроллеров learning_needs
и observations
в наблюдателях в пределах их соответствующих контроллеров, поэтому я не передаю ни одной модели вызову рендеринга в шаблоне.
С контроллером уведомлений я передаю в student.room.notices как второй параметр для вызова рендеринга.
Теперь проблема в том, что я вижу разные контроллеры notices
, когда я визуализую шаблон в методе setupController Parent
. То есть, у них разные икры. Контроллер в @set('controller.controllers.notices.showAdd', true)
отличается от отображаемого шаблоном.
Если я удаляю модель student.room.notices
из шаблона и просто использую уведомления «render», тогда используется тот же самый контроллер, и я могу установить свойство showAdd и показать его в шаблоне. Тогда проблема заключается в том, что она не содержит никаких моделей.
Соответствующие docs говорят, что помощник представления визуализации будет Get (or generate) the singleton instance of AuthorController
, но это не похоже на меня.
Может ли кто-нибудь пролить свет на это поведение?
спасибо,
Martin
какая версия ember.js вы используете? – intuitivepixel
Я использую 1.0.0-rc.3 –
Посмотрев на документы снова, я теперь вижу следующее: «Когда модель предоставляется, она получает уникальный экземпляр соответствующего контроллера». Похоже, поведение, которое я вижу, ожидается. Теперь я просто хотел бы выяснить, как получить ссылку на этот сгенерированный контроллер, чтобы я мог установить некоторые атрибуты на нем. –