我有这样的路线
path: 'projects/:id/settings'
在我的header.component.html中,我希望有一个指向此页面的链接
<a routerLink="['projects', progectId,'settings']" routerLinkActive="active">cool link</a>
我有一个project.component,当我点击某个项目时,我会进入项目页面。然后我需要有可能去projects/:id/settings
或其他类似的路线。
如何从projects.component传递progectId
变量?
或者也许有人知道实现这个的另一种方式。
答案 0 :(得分:6)
对于route
这类routerLink
我应该使用<a routerLink="/projects/{{progectId}}/settings" routerLinkActive="active">cool link</a>
这样的问题:
route path
并在routing module
中更改{ path: ':id/settings', component: YourComponent}
,如下所示:
projectId
有关获取ActivatedRoute
的其他信息,请按以下步骤操作:
object
。component constructor
variable
projectId
。component
的{{1}}
params
方式activatedRoute
object
获取ngOnInit()
。最后,你应get
projectId
html
这样{{projectId}}
import {Router, ActivatedRoute, Params} from '@angular/router';
@Component({
selector: 'app-your-component',
templateUrl: './your-component.component.html',
styleUrls: ['./your-component.component.css']
})
export class YourComponent implements OnInit {
private projectId: string;
constructor(private activatedRoute: ActivatedRoute) {}
ngOnInit() {
this.activatedRoute.params.subscribe((params: Params) => {
this.projectId = params['id'];
});
}}
答案 1 :(得分:0)
我通常在组件类中这样做
somefunctionName() {
let link = ['/summary', this.param1, this.param2];
this.router.navigate(link);
}
然后从像这样的HTML代码中调用该函数
<a (click)="somefunctionName()">
在你的情况下,因为我假设你正在循环你的项目,你可以用这样的参数调用你的函数
<a (click)="somefunctionName(pass the parameter here)">
然后更改功能定义以反映这一点。