dom内的ViewChild(如果在Angular中)

时间:2018-08-10 06:45:28

标签: angular

如果使用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链接:

Stackblitz link

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用超时来改变执行,并仅在步进器存在的情况下使用条件来执行:stackblitz

setTimeout(() => this.stepper ? this.stepper.selectedIndex = 1 : null);

此外,请考虑将按钮上的单击绑定到ngOnInit(尽管您应该创建一个新函数,但将由按钮&ngOnInit调用)。还可以考虑将超时时间转移到订阅中。

如果不显示数据,则没有必要进行存储。