Angular 2路由:在Router.url

时间:2017-02-23 04:51:52

标签: javascript angular angular2-routing angular2-template

我正在使用以下模板语句来确定制表符元素的类:

<li [class.active]="router.url == '/member-view/member-profile/' + routeParamVar">

无论route参数是什么,该类都应该是活动的。但理想情况下,我可以将特定的路由参数放入Router.url语句中。这是这个问题的第一部分,看起来相当直接,但我不知道该怎么做。

我认为,一个复杂因素是该元素位于具有实际路径参数的视图的父模板中。我似乎无法将ActivatedRoute参数分配给组件中的变量,如下所示:

this.uid = this.activeRoute.snapshot.params['uid']

我已经搞砸了使用服务或@ViewChild来从孩子到父母的uid,但还没有完全弄明白。总而言之,我的问题是双重的:

首先,如何将子组件的路径参数分配给父组件中的变量?

其次,我如何将该变量放入模板语句中的Router.url?

1 个答案:

答案 0 :(得分:1)

因此我在问题中猜到了在Router.url中引用变量的方法:

[class.active]="router.url === '/member-view/member-profile/' + uid"

我还能够通过以下方式获得孩子的路线参数:

this.activeRoute.firstChild.params
.subscribe(params => {
    this.uid = params['uid'];