2015-09-07 4 views
0

Мой маршрутизатор выглядит это на данный момент:Изменить путь файла шаблона в Ember маршрутизатор

Router.map(function() { 
    this.route('item1'); 
    this.route('item2'); 
    this.route('item3', function(){ 
     this.route('sub-item', { path: '/sub-item' }); 
    }); 
}); 

И моя папка шаблонов выглядит следующим образом:

enter image description here

Теперь, когда у меня есть гиперссылку например:

{{link-to 'Sub Item' 'item3.sub-item'}} 

Это переход на sub-item.hbs внутри папки item3. Как я могу изменить путь вложенного маршрута sub-item, чтобы вместо этого он отображал файл sub-item.hbs в папке templates? Я попытался изменить его на this.route('sub-item', { path: '../sub-item' });, но это не сработало.

ответ

0

Вам необходимо сбросить пространство имен this.route('sub-item', { path: '/sub-item', resetNamespace: true }); и переместить item3/sub-item.hbs в sub-item/index.hbs.

И ваша ссылка на путь будет {{link-to 'Sub Item' 'sub-item.index'}}sub-item, если вы хотите сохранить активный класс, который ember автоматически добавляет к ссылкам.

+0

Эй. Спасибо за ответ. Фактически я пытаюсь добиться того, чтобы маршрут 'item3.sub-item' отображал файл в физическом местоположении' templates \ sub-item.hbs', вместо того, чтобы отображать его в 'templates \ item3 \ sub- item.hbs' –

+1

@JeevanJose маршрут останется вложенным, вам просто нужно сбросить пространство имен, чтобы распознаватель мог получить правильные файлы, он не загружает 'sub-item.hbs' сейчас, так как вы не находитесь в' маршрут подпункта –