如何在[routerlink]内传递变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在[routerlink]内传递变量相关的知识,希望对你有一定的参考价值。
我需要将当前的userId
传递到routerlink
的borrow_list component
我在userId
宣布borrow_list component
的方式
userId: number;
constructor(private authService: AuthService, private bookService: BookService,
private route: ActivatedRoute, private alertify: AlertifyService)
ngOnInit()
this.userId = this.authService.decodedToken.nameid;
this.route.data.subscribe(data =>
this.books = data['books'].result;
this.pagination = data['books'].pagination;
);
this.borrowParam = 'loan';
console.log(this.userId); // this one return 26
然后我尝试使用userId
将routerlink
传递给另一个组件
<div class="row">
<div *ngFor="let b of books" class="col-sm-6 col-md-4 col-lg-4 col-xl-2">
<app-book-card [book]="b"></app-book-card>
<button class="btn btn-primary" [routerLink]="
['/browse/book/',this.userId,'/content/', b.id]" style="width: 75px">Read
</button>
</div>
</div>
但它似乎不起作用,没有错误,但它将我引回主页
当我试图硬编码链接,它按预期工作,即
[routerLink]="['/browse/book/26/content/', b.id]"
我的routes.ts
path: 'browse/book/:id/content/:bookId', component: Book_contentComponent, resolve: book: BookContentResolver
我想我在某个地方做错了?
答案
在模板中时,变量会自动从基础组件中获取。所以你不需要使用this
来访问成员变量。
在你的代码中,你只需要userId
而不是this.userId
,给出:
<button class="btn btn-primary" [routerLink]="
['/browse/book/', userId,'/content/', b.id]" style="width: 75px">Read
</button>
注意:将style
内联到html中并不是一个好习惯。
另一答案
请试试这个:
<button class="btn btn-primary" [routerLink]=" ['browse', 'book', userId, 'content',
b.id]" style="width: 75px">Read </button>
每个路径段都是数组中的一个元素。
以上是关于如何在[routerlink]内传递变量的主要内容,如果未能解决你的问题,请参考以下文章
如何在RouterLink中包含一个按钮,以便在按钮单击时不会发生导航