2016-10-22 5 views
3

У меня есть угловое приложение 2, в котором есть две независимые функции, которые являются компонентами рядом друг с другом (назовем их A и B). Теперь я хочу изменить то, что живет в компоненте A через маршрутизацию. Все идет нормально. Это будет обычный сценарий, в котором мы будем называть компонент A компонентом контента приложения.Angular2 Routing: несколько компонентов сразу

Моя проблема заключается в том, чтобы я мог также изменить то, что находится внутри компонента B, путем маршрутизации.

Конечно, я мог теперь создавать маршруты, как http://foo.bar/what-lives-in-a/123/what-lives-in-b/abc Но представьте себе приложение, где есть сотни вещей, которые могли бы жить в А и dozends вещей, которые могли бы жить в Б. Я думаю, что это будет слишком болезненным, чтобы создать все эти подпункты вручную.

Так кто-нибудь из вас знает хороший способ решить эту проблему?

+0

Не могли бы вы объяснить, что именно вы хотите с примером? – micronyks

+0

На самом деле я могу. Наша команда хочет создать пользовательский интерфейс, где с левой стороны у нас есть компонент вида. Предположим, я хочу перечислить всех клиентов. С правой стороны у меня есть компонент действия, где я могу выполнить любое действие (независимо от того, что я вижу в компоненте вида). Поэтому я мог бы выполнить действие «создать задачу», пока я смотрю список клиентов. Умение «создать задачу» не имеет ничего общего с клиентами. – Domenic

+0

Да, это возможно и очень легко. – micronyks

ответ

5

Что вы хотите, может быть достигнуто с помощью 2 независимых роутеров. Это имеет смысл, поскольку компоненты независимы. Таким образом, вы, вероятно, уже имея основной выход маршрутизатора, который находится в верхнем компоненте и определяется так: <router-outlet></router-outlet>

Чтобы указать другой вам нужно написать следующее: <router-outlet name="forComponentB"></router-outlet> После этого вы будете иметь добавить маршрут для указанного выпускного отверстия маршрутизатора, как что:

,{path: "comp-b-path", outlet: "forComponentB", component: ComponentB}

Так что в результате URL будет выглядеть примерно так: BaseUrl/сост-а-гиперссылка (forComponentB: комп-б-путь), и вы может управлять государством обоих компонентов независимо путем изменения основного URL-адреса или одного из них в круглых скобках. Обратите внимание, что вы можете добавлять параметры к каждому из URL-адресов, поэтому он очень гибкий.

+0

Ничего себе это звучит просто как то, на что я надеялся! Благодаря! Я должен попробовать это в ближайшие пару дней. – Domenic

+0

Надеюсь, это поможет, дайте мне знать, если что-то не получится, попытается помочь –

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