CdkStepper имеет свойство _steps: QueryList<CdkStep>
, которое имеет свойство changes: Observable<any>
, которое выдает значения как новые шаги, добавленные в CdkStepper
.
Однако, когдаиспользуется для свойства OnInit
_steps
, похоже, еще не заполнено.Таким образом, использование settimeout
для ожидания следующего цикла обнаружения изменений для _steps
для инициализации решает проблему.В вашем примере измените CustomStepperComponent
следующим образом:
ngOnInit() {
setTimeout(()=>{
this._steps.changes.subscribe(x => {
this.selectedIndex = x.length - 1;
});
});
}
вот мое рабочее демо
https://stackblitz.com/edit/angular-cdkstepper-formarray-jnftgb
btw, _steps
свойство равно устарел в "@angular/material": "8.0.0"