【问题标题】:Dynamic routerLink value for ngFor item Angular 8ngFor 项目 Angular 8 的动态 routerLink 值
【发布时间】:2020-03-08 21:32:46
【问题描述】:

我正在尝试使用 [routerLink] 从 NgFor 路由动态值。

<li class="list-group-item d-flex justify-content-between align-items-center"
            *ngFor="let factors of factorsList">
            <span>{{factors | titlecase}}</span>
            <a [routerLink]="'../factors'" class="btn btn-primary btn-sm">Reset <span class="sr-only">{{factors}}</span></a>
        </li>

该代码应生成如下等效代码

<li class="list-group-item d-flex justify-content-between align-items-center">
            Google
            <a [routerLink]="['../google']" class="btn btn-primary btn-sm">Reset <span class="sr-only">google</span></a>
        </li>
        <li class="list-group-item d-flex justify-content-between align-items-center">
            YubiKey
            <a [routerLink]="['../yubikey']" class="btn btn-primary btn-sm">Reset <span class="sr-only">yubi
                    key</span></a>
        </li>
<li class="list-group-item d-flex justify-content-between align-items-center">
            Backup codes
            <a [routerLink]="['../backupcode']" class="btn btn-primary btn-sm">Reset</a>
        </li>

但由于某些原因,[routerLink]="'../factors'"中没有替换价值因素

组件类

export class MfaResetComponent implements OnInit {
  mfaApp = MfaApp
  public factorsList: string[] = [];
  constructor(private genericHttpClientService: GenericHttpClientService) { }

  ngOnInit() {
    this.getResetFactors();
  }
  getResetFactors() {
    this.genericHttpClientService.GenericHttpGet<FactorsViewModel[]>(`url`).subscribe(item => {
      this.factorsList = [...new Set(item.filter(factor => factor.status == MultiFactorAuthenticationEnrolmentStatus.Enrolled).map(factor => factor.provider))];
    })
  }
}

列表因素将是

this.factorsList = ['Google','okta','Yubikey','BackupCode']

我发现堆栈溢出的一些问题 Dynamic routerLink value from ngFor item giving error "Got interpolation ({{}}) where expression was expected"

Angular 2 dynamically set routerLink using a component property

【问题讨论】:

  • 显示factorsList
  • [routerLink]="'../'+factors"替换[routerLink]="'../factors'"

标签: javascript html angular angular-ui-router angular-routing


【解决方案1】:

尝试使用[routerLink]="'../'+factors"routerLink="{{'../'+factors}}"

Working Demo

.ts

factorsList = ["about","services"]

.html

<li class="list-group-item d-flex justify-content-between align-items-center" *ngFor="let factors of factorsList">
    <span>{{factors | titlecase}}</span>
    <a [routerLink]="'../'+factors" class="btn btn-primary btn-sm">Reset <span class="sr-only">{{factors}}</span></a>
</li>

【讨论】:

  • 我不能使用 [routerLink]="factors" 因为我需要导航到相对路径。所以我需要利用 [routerLink]="../factors".
  • 查看修改后的
【解决方案2】:

您正在使用[routerLink]="'../factors'" 中的字符串来使其工作

[routerLink]="'../factors'" 替换为[routerLink]="['../'+factors]"

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2020-01-30
    • 2016-09-01
    • 1970-01-01
    相关资源
    最近更新 更多