Angular2路由:一次多个组件

时间:2016-10-22 16:45:03

标签: angular routing

我有一个有角度的2应用程序,其中有两个独立的功能,也就是彼此相邻的组件(让他们称之为A和B)。现在我想通过路由更改组件A中的内容。到现在为止还挺好。这将是一个正常的情况,我们将组件A称为应用程序内容组件。

我的问题是我希望能够通过路由更改组件B中的内容。

当然我现在可以创建像http://foo.bar/what-lives-in-a/123/what-lives-in-b/abc这样的路线 但想象一下这样一个应用程序,其中有数以百计可以存在于A中的东西以及可能存在于B中的事物。我认为手动创建所有这些子路径会非常痛苦。

所有人都知道解决这个问题的好方法吗?

1 个答案:

答案 0 :(得分:5)

使用2个独立的路由器插座可以实现您的目标。它是有意义的,因为组件是独立的。 因此,您可能已经拥有位于最顶层组件中的主路由器插座,并且指定如下: <router-outlet></router-outlet>

要指定另一个,您需要编写以下内容: <router-outlet name="forComponentB"></router-outlet> 之后,您将必须添加指定路由器插座的路由,如下所示:

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

因此生成的url看起来像这样: baseurl / comp-a-url(forComponentB:comp-b-path),您可以通过更改主URL或括号中的url来独立管理两个组件的状态。请注意,您可以为每个网址添加参数,因此非常灵活。