2015-04-10 5 views
0

У меня есть это на моем router.js:ember.js вложенных маршруты с общими моделями

this.resource('campaigns', {path:'/campaigns'}, function() { 
    this.route('index', {path: '/'}); 
    this.route('group', {path: '/*campaign_group_id'}); 
}); 

Так что маршрут называется кампанией и 2 гнездовых маршруты: индекса и групп.

Когда браузер находится в группе , мне нужно получить доступ к модели из группового маршрута в маршруте/контроллере кампаний.

Но я не могу получить к нему доступ. Я всегда получаю модель, которая находится на пути campaigns.js.

+0

что вы пытаетесь сделать с моделью? Разделение проблем несколько нарушается, если вы пытаетесь позволить родительскому маршруту/контроллеру узнать, что пытается сделать контроллер-контроллер. – Hrishi

+0

Я просто пытаюсь получить доступ к ресурсу обещания дочерней модели использовать этот родительский маршрут. – user3637020

+0

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

ответ

1

Если установить модель из campaign.group маршрута на своем контроллере, вы должны быть в состоянии использовать controllerFor, чтобы с campaigns маршрута, что-то вроде

// routes/campaigns.js 
this.controllerFor('campaigns.group').get('your-prop') 

Вы также можете отправить действие от вашего group маршрута и обрабатывать его в родительском campaigns маршруте, отправляя по модели. Это, возможно, более идиоматично с соглашениями Ember 2.0.

Btw, если вы используете Ember CLI (что вам должно быть), вы должны попытаться избавиться от this.resource и положить все свои маршруты/шаблоны/контроллеры в контейнеры.

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