Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用插值设置routerLink_Angular - Fatal编程技术网

Angular 使用插值设置routerLink

Angular 使用插值设置routerLink,angular,Angular,我正在Angular 5中开发一个应用程序 在我的ts文件中,我将字符串数组设置为 breadCumbSetter.bCumb = [ {name:'Operation',route:'/operation'}, ]; 在我看来,我使用它如下 <ol class="breadcrumb"> <li class="breadcrumb-item"> <a [routerLink]="['/dashboard']">

我正在Angular 5中开发一个应用程序

在我的ts文件中,我将字符串数组设置为

breadCumbSetter.bCumb = [
  {name:'Operation',route:'/operation'},
];
在我看来,我使用它如下

<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>
但什么都不管用


如何通过插值设置routerLink值,或者在*ngFor循环中是否有其他方法进行设置?

您需要了解
@Input
s如何在角度中工作,以及
routerLink
接受什么

routerLink
可以接受一个完整的字符串,这是一个绝对的路由器URL,也可以接受一个字符串和数字数组,这是相对于当前路由的(除非第一项以
/
开头)

对于
@输入
s:

  • routerLink=“foo”
    表示您正在将
    'foo'
    作为字符串发送到输入
  • [routerLink]=“foo”
    表示您正在向输入发送一个名为
    foo
    的变量
  • routerLink=“{{foo}}”
    表示您正在向输入发送一个名为
    foo
    的变量
  • [routerLink]=“'foo'”
    表示您正在将
    'foo'
    作为字符串发送到输入
  • [routerLink]=“[foo]”
    表示您正在向输入发送一个包含一个项的数组,该数组是
    foo
    变量
既然这样说了,您的案例的正确语法应该是

[routerLink]="[item.route]"
你可能会认为这相当于

[routerLink]="['"+{{item.route}}+"']"

但事实并非如此。这将不起作用,因为您正在使用变量表示法(
[routerLink]
)和外推(
{{item.route}}
)。您可以使用其中一个,但不能同时使用两个

您需要了解
@Input
s如何以角度工作,以及
routerLink
接受什么

routerLink
可以接受一个完整的字符串,这是一个绝对的路由器URL,也可以接受一个字符串和数字数组,这是相对于当前路由的(除非第一项以
/
开头)

对于
@输入
s:

  • routerLink=“foo”
    表示您正在将
    'foo'
    作为字符串发送到输入
  • [routerLink]=“foo”
    表示您正在向输入发送一个名为
    foo
    的变量
  • routerLink=“{{foo}}”
    表示您正在向输入发送一个名为
    foo
    的变量
  • [routerLink]=“'foo'”
    表示您正在将
    'foo'
    作为字符串发送到输入
  • [routerLink]=“[foo]”
    表示您正在向输入发送一个包含一个项的数组,该数组是
    foo
    变量
既然这样说了,您的案例的正确语法应该是

[routerLink]="[item.route]"
你可能会认为这相当于

[routerLink]="['"+{{item.route}}+"']"

但事实并非如此。这将不起作用,因为您正在使用变量表示法(
[routerLink]
)和外推(
{{item.route}}
)。您可以使用其中一个,但不能同时使用两个

首先,它不起作用,其次,您建议使用您显示的最后一个选项-传递一个包含一个项的数组,但item.route不是一个包含一个项的数组,它本身是数组
项中的单个值。route
是一个字符串,
[item.route]
是一个包含单个字符串的数组。如果它不起作用,请提供一个。我想知道它是如何不是最小的,完整的和可验证的例子。顺便说一下,谢谢你的帮助。我将深入挖掘一些官方文档。它是最小的,不完整的(有你的路由配置,有你的TS代码和完整的HTML代码),它是不可验证的(没有沙箱来重现这个问题)。你想挖多少就挖多少,这是总结。因此,要么深入研究文档,要么提供一个文档,以便SOF上的人员可以帮助您。但是如果你进入文档,请删除你的问题,因为它不能满足的要求。伙计,我可以向你提供我的路线配置和TS代码,但在看到所有你要说的是-“现在它不是最小的”。不要跳入无限循环首先它不起作用,其次建议使用您显示的最后一个选项-传递一个包含一个项目的数组,但item.route不是一个包含一个项目的数组,它本身是数组
项目中的单个值。route
是一个字符串,
[item.route]
是一个包含单个字符串的数组。如果它不起作用,请提供一个。我想知道它是如何不是最小的,完整的和可验证的例子。顺便说一下,谢谢你的帮助。我将深入挖掘一些官方文档。它是最小的,不完整的(有你的路由配置,有你的TS代码和完整的HTML代码),它是不可验证的(没有沙箱来重现这个问题)。你想挖多少就挖多少,这是总结。因此,要么深入研究文档,要么提供一个文档,以便SOF上的人员可以帮助您。但是如果你进入文档,请删除你的问题,因为它不能满足的要求。伙计,我可以向你提供我的路线配置和TS代码,但在看到所有你要说的是-“现在它不是最小的”。不要陷入无限循环