我正在Angular 5中开发一个应用程序
在我的ts文件中,我将字符串数组设置为
breadCumbSetter.bCumb = [
{name:'Operation',route:'/operation'},
];
Run Code Online (Sandbox Code Playgroud)
在我看来,我正在使用它如下
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a [routerLink]="['/dashboard']">
<i class="fa fa-home"></i>
</a>
</li>
<li class="breadcrumb-item" *ngFor="let item of breadCumbSetter.bCumb">
<a [routerLink]="['"+{{item.route}}+"']">{{item.name}}</a>
</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
我正面临着问题
<a [routerLink]="['"+{{item.route}}+"']">{{item.name}}</a>
Run Code Online (Sandbox Code Playgroud)
我无法在routerLink中设置路由值,我也尝试了很多在网络上找到的建议,
[routerLink]="item.route"
routerLink=[item.route]
Run Code Online (Sandbox Code Playgroud)
但没有任何作用,
如何通过插值设置routerLink值,或者在*ngFor循环中有没有其他方法可以做到这一点?
小智 7
您需要了解@InputAngular中的工作方式以及routerLink接受的内容.
routerLink可以接受一个完整的字符串,这是一个绝对的路由器URL,或一个字符串和数字的数组,它相对于你当前的路由(除非第一项以a开头/)
对于@Inputs:
routerLink="foo"意味着您将'foo'字符串发送到输入[routerLink]="foo"意味着你要发送一个调用foo输入的变量routerLink="{{foo}}"意味着你要发送一个调用foo输入的变量[routerLink]="'foo'"意味着您将'foo'字符串发送到输入[routerLink]="[foo]"意味着您要将一个项目的数组(作为foo变量)发送到输入既然这样说,你的案例的正确语法应该是
[routerLink]="[item.route]"
Run Code Online (Sandbox Code Playgroud)
你可能认为它等同于
[routerLink]="['"+{{item.route}}+"']"
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.这不起作用,因为您使用变量表示法([routerLink])和外推({{item.route}}).您可以使用其中任何一个,但不能同时使用两者.
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |