2016-05-09 3 views
0

У меня есть меню в левой части страницы, и слева должно быть другое меню, которое является подменю выбранного меню. Для этого я создал нетерминальный маршрут «/ section/...» и создал компонент с другим выходом маршрутизатора. Компонент в папке «section» также является компонентом маршрутизатора. Я должен был использовать ссылки, как это сделать это работает («./» должен был быть добавлен здесь для ссылки, чтобы быть специфическими для данного подкомпонента):Подменю с угловым2

<a [routerLink]=" ['./Index'] ">Index</a> 
<a [routerLink]=" ['./Test'] ">Test</a> 

Все работает отлично, но я хотел бы, чтобы включить те hrefs, которые в настоящее время являются моим подменю в другой отдельный компонент. Я не хочу жестко настраивать свое меню в каждом разделе, я бы просто разместил тег и каким-то образом указал ссылки, которые нужно добавить в это подменю. Проблема здесь в том, что я застрял и не знаю, как я могу передать эти ссылки в компонент подменю, чтобы они все равно указывали на правильные местоположения. Итак, какой был бы лучший способ создать такой компонент подменю и передать список ссылок на него?

+0

Какой у вас вариант Angular2? Действительно ли необходимо сделать подменю маршрутизируемых компонентов? Почему бы просто не создать древовидную структуру и просто маршрутизировать компонент, отображаемый при нажатии ссылки? Возможно, я неверно истолковал ваш вопрос. –

+0

Я не уверен в версии, даже не знаю, где искать (с помощью webpack). Вероятно, нет необходимости в корневых компонентах подменю, это единственный способ, которым я знал это. Кроме того, некоторые подменю будут расширены с дополнительной функциональностью (более похожими на боковые панели), поэтому я хотел бы, чтобы боковая панель была в группе функций. Как бы вы это порекомендовали? – marius

+0

Я использовал бы маршрутизатор для этой цели только тогда, когда я хочу, чтобы навигация от родителя к подменю, отображаемому в URL-адресе. Это разумно, я просто не могу сказать, важно ли это для вашего случая использования. В противном случае вы можете, например, добавить подменю в качестве компонентов, например, в http://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-with-user-click-chosen-components/36325468#36325468. Только навигация к пункту меню терминала затем будет отображаться в строке URL браузера. –

ответ

0

я решил аналогичный случай использования с помощью одного параметра маршрута по пути меню, а другая части пути для фактического содержания с путем маршрута как

http://myapp/main_menu.sub_menu3.sub_sub_menu5/some_content/details 

с А маршрутом конфигурация как

{path: '/:menu/...', name: 'MainArea', component: MainAreaComponent} 

Я впрыскивать маршрутизатор к компоненту NavBar и слушать изменения и обновлять NavBar ракурс в зависимости от переданного параметра меню и вызвать this.router.navigate(...) с обновленным значением параметра меню, отражающее изменение навигации в меню и пути для отображения основного содержимого в зависимости от выбранного меню.

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