gpt4 book ai didi

Angular Material Stepper 在第一次加载时未定义

转载 作者:行者123 更新时间:2023-12-04 01:07:05 24 4
gpt4 key购买 nike

我在组件中使用 Angular Material Stepper。问题是,当组件第一次加载时,它会因错误消息而中断

ERROR TypeError: Cannot read property 'selectedIndex' of undefined

我的模板

<mat-horizontal-stepper #stepper>
<!-- Steps -->
</mat-horizontal-stepper>
<div>
<button (click)="goBack(stepper)" type="button"
[disabled]="stepper.selectedIndex === 0">Back</button>
<button (click)="goForward(stepper)" type="button"
[disabled]="stepper.selectedIndex === stepper._steps.length-1">Next</button>
</div

我的老师

import { MatStepper } from '@angular/material/stepper';

goBack(stepper: MatStepper){
stepper.previous();
}

goForward(stepper: MatStepper){
stepper.next();
}

而且我还在 TS 中将步进器定义为

@ViewChild('stepper') stepper: MatStepper;

但是如果我使用 [disabled] 属性作为

<div>
<button (click)="goBack(stepper)" type="button"
[disabled]="stepper ? stepper.selectedIndex === 0 : false">Back</button>
<button (click)="goForward(stepper)" type="button"
[disabled]="stepper ? stepper.selectedIndex === stepper._steps.length-1 : false">Next</button>
</div

步进器按预期工作。

注意:

Angular Version is :5.2.8
Angular Material Version:5.2.5

最佳答案

使用猫王运算符:

<button (click)="goBack(stepper)" type="button" 
[disabled]="stepper?.selectedIndex === 0">Back</button>

相当于

<button (click)="goBack(stepper)" type="button" 
[disabled]="stepper ? stepper.selectedIndex === 0 : false">Back</button>

但更干净。对于点击事件,可以这样做

<button (click)="stepper && goBack(stepper)" type="button" 
[disabled]="stepper?.selectedIndex === 0">Back</button>

在未定义步进器时阻止调用。

关于Angular Material Stepper 在第一次加载时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56626484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com