Angular 2路由器替代routerLink指令的语法不起作用

时间:2016-11-18 21:39:49

标签: angular2-routing

我试图让IN指令使用矩阵参数。到目前为止,我能够使用的唯一语法变体就是路径字符串。

routerLink

在网址栏中导航到<a routerLink="/state-scratchpad">Syntax 1 - works</a> <a routerLink="['/state-scratchpad']">Syntax 2 - doesn't work</a> <a routerLink="['/state-scratchpad', { tcomp: '1', tmake: '1-7' }]">Syntax 3 - doesn't work</a> <a routerLink="/state-scratchpad;tcomp=1;tmake=8">Syntax 4 - doesn't work</a> 也可以。

以下是我的路线:

/state-scratchpad;tcomp=1;tmake=8

我正在使用Angular const routes = [ { path: '', pathMatch: 'full', redirectTo: '/welcome' }, { path: 'welcome', component: WelcomeComponent }, { path: 'state-scratchpad', component: StateScratchpadComponent, params: { tcomp: '', tmake: '' } } ]; 。根据{{​​3}}网站上的文档,2.0.0值的各种语法都应该有效。但只有最简单的语法才有效。以下是生成的错误消息:

routerLink

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

首先路由器链接如下所示

<a [routerLink]="['/state-scratchpad', tcomp, tmake]">

这将传递基本URL并附加参数。 接下来你的路线应该是这样的

{ path: 'state-scratchpad/:tcomp/:tmake', component: StateScratchpadComponent}

然后在加载组件时,您可以访问这样的参数

constructor( private route: ActivatedRoute) {}
ngOnInit(){ 
    this.route.snapshot.params["tcomp"];
    this.route.snapshot.params["tmake"];
}