Как установить selectedIndex для AngularMaterial.Stepper на основе длины массива @Input () - PullRequest
0 голосов
/ 09 июля 2020

У меня есть материальный степпер, представляющий массив объектов. Я пытаюсь установить текущий шаг angular material v9 stepper на последний элемент массива объектов. Проблема в том, что массив объектов является входом компонента, и я думаю, что шаговый двигатель материала отображается до того, как @Input() будет разрешено, поэтому я получаю ошибку Error: cdkStepper: Cannot assign out-of-bounds value to 'selectedIndex'..

Я думал, что смогу чтобы заставить его работать, если я программно установил выбранный индекс в ngAfterViewInit()

ngAfterViewInit() {
  this.stepper.selectedIndex = this.inputArray.length;
}

, но это все равно, похоже, вызывает ошибку. Где я должен установить это, чтобы выбранный индекс устанавливался правильно после того, как шаговый двигатель материала был визуализирован, и после того, как входные данные были получены компонентом?

Обратите внимание, я вижу, что существует несколько жизненных циклов хуки 'в классе MatStepper, но я не вижу никакой документации о них в материалах документации.

1 Ответ

0 голосов
/ 09 июля 2020

Возможно, вы используете неизменяемый массив, например array.pu sh, для установки значений в родительском компоненте. Вместо этого используйте изменяемый массив, например array = array.pu sh. Таким образом, обнаружение изменений зафиксирует изменение.

...