Установить модель контроллера вложенных ресурсов для дочернего объекта родительской модели маршрута

Это может показаться немного запутанным, но я постараюсь объяснить это.

у меня есть loans маршрут, а затем у меня есть вложенный ресурс под названием продукт. Один loan может иметь много продуктов, и когда вы выбираете, чтобы просмотреть один из продуктов, я перенаправить на product вложенный ресурс. Проблема в том, что мое приложение поддерживает работу с несохраненными данными. Таким образом, изначально при создании нового кредита вы можете добавлять новые продукты без сохранения кредита (в моей модели кредита есть свойство hasMany для продукта), но когда я перехожу к маршруту продукта, мне нужно получить доступ к модели кредита на маршруте моего кредита. и получить все продукты, которые есть у ссуды, а затем найти ее по идентификатору в URL, но я сталкиваюсь с проблемой, что, когда я получаю контроллер ссуд, его модель все еще пуста, я думаю, это потому, что маршрут ссуды выполняется после маршрута продукта.

Я придерживаюсь неправильного подхода или есть способ получить доступ к модели ссуд?

1 ответ

Решение

Вы должны иметь доступ к контроллеру ссуд и его модели из дочернего контроллера, если вы объявите его как зависимость.

Просто добавь needs: 'loans' (с вашим реальным названием маршрута ссуды) внутри контроллера продукта, а затем вы можете получить доступ к контроллеру ссуд, например: this.get('controllers.loans'),

Вы можете прочитать больше здесь: http://emberjs.com/guides/controllers/dependencies-between-controllers/

Обновление, чтобы полностью ответить на оригинальный вопрос

Изнутри ProductRoute вы сможете получить доступ к родительской модели, выполнив this.modelFor('loan'). Убедитесь, что вы используете фактическое имя маршрута, объявленное в Router.map.

Другие вопросы по тегам