如果使用Exq
,我想获取对dom内部元素的引用。实际上,我正在使用ViewChild
,并且想直接导航到第二步。以下是我的代码片段;
.html
mat-stepper
component.ts
<mat-vertical-stepper #stepper *ngIf="showStepper">
我想直接导航到第二步(第一索引)。为此,我正在使用ViewChild,但是由于mat-stepper位于 @ViewChild('stepper') stepper: MatStepper;
constructor() { }
ngOnInit() {
this.firstFormGroup = new FormGroup({
firstCtrl: new FormControl(null, [Validators.required])
});
this.secondFormGroup = new FormGroup({
secondCtrl: new FormControl(null, [Validators.required])
});
this.stepper.selectedIndex = 1;
}
内,因此dom-if
不确定。
这是我的代码的this.stepper
链接:
任何帮助将不胜感激。
答案 0 :(得分:1)
使用超时来改变执行,并仅在步进器存在的情况下使用条件来执行:stackblitz
setTimeout(() => this.stepper ? this.stepper.selectedIndex = 1 : null);
此外,请考虑将按钮上的单击绑定到ngOnInit
(尽管您应该创建一个新函数,但将由按钮&ngOnInit调用)。还可以考虑将超时时间转移到订阅中。
如果不显示数据,则没有必要进行存储。