gpt4 book ai didi

angular-material - angular 5 stepper selectedIndex 不适用于订阅中的变量集

转载 作者:行者123 更新时间:2023-12-04 08:30:44 40 4
gpt4 key购买 nike

我正在尝试让步进器根据用户停止的位置转到一组问题。我正在使用 selectedIndex,并将其设置为我从服务器检索到的数字。

网址:

  <mat-horizontal-stepper class="my-stepper" [linear]="true" #stepper="matHorizontalStepper" [selectedIndex]="currentQuestion">
<mat-step *ngFor="let question of currentVideoCount">
<ng-template matStepLabel>Question {{question}}</ng-template>
</mat-step>
</mat-horizontal-stepper>

typescript :
  public currentVideoCount: number[];
public currentQuestion: number;
ngAfterViewInit() {
this.programId.subscribe((programId) => {
this.evalService.getCurrentVideoCount(programId).subscribe(data => {
this.currentVideoCount = data.videoCount;
this.currentQuestion = data.question;
});
})
}

这不起作用。如果我这样做,我会收到此错误。
ERROR Error: cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.

但是,如果我只是将 html 更改为不使用 currentQuestion,而只使用一个数字或一个我定义为 1、2 等的变量,它确实可以工作。如果我只是将 currentQuestion 放在 html 标签中,它会给我正确的数字。如果我在任何地方记录它,它会给我正确的数字。但是步进器本身不会使用该数字,并且仅当以这种方式为其提供数字时。如何让它对 selectedIndex 使用 currentQuestion?我认为它出错了,因为我在订阅中定义它的方式,但我不知道如何解决这个问题。

编辑:如果我将 currentQuestion 初始化为我期望 data.question 的数字,它可以工作,但如果我将它初始化为其他东西,则无效。显然不是我想要的,但仍然很有趣。

编辑:如果我默认将 selectedIndex 设置为越界,例如 3 个项目数组中的 300 个,我不会收到越界错误,它只会使整个步进器变灰。

最佳答案

我想出的解决方案是将步进器放在带有 *ngIf 的 div 中,并在设置所有数据后在 subscribe 中显示该 div。

网址:

  <div *ngIf="!processing">
<mat-horizontal-stepper class="my-stepper" [linear]="true" #stepper="matHorizontalStepper" [selectedIndex]="currentQuestion">
<mat-step *ngFor="let question of currentVideoCount">
<ng-template matStepLabel>Question {{question}}</ng-template>
</mat-step>
</mat-horizontal-stepper>
</div>

typescript :
  public currentVideoCount: number[];
public currentQuestion: number;
public processing = true;
ngOnInit() {
this.loadNextVideo();
this.programId.subscribe((programId) => {
this.evalService.getCurrentVideoCount(programId).subscribe(data => {
this.currentVideoCount = data.videoCount;
this.currentQuestion = data.question;
this.processing = false;
});
})
}

这很丑陋,但它有效。如果有人想出更好的答案,请在此处发布。

关于angular-material - angular 5 stepper selectedIndex 不适用于订阅中的变量集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542956/

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