材料步进器-使用形状组阵列时,步进会消失



我正在使用@angular/material的步进器,我有一些行为无法完全解释。我使用的是一个数组,其中放入了一个formgroup。这个数组是ngFor的源,我将该项传递给步骤。当我从数组中删除一个项目时,mat-step's就不见了。但清单上仍然充满了项目。

顺便说一句,使用trackyby并没有帮助。唯一有帮助的是在更改状态之前选择不同的步骤(见第51行(

场景:

  1. 填写表格
  2. 单击添加一个项目
  3. 填写表格
  4. 按下删除一项
  5. 看到台阶消失

Stacklitz 示例

问题:为什么会发生这种情况?

我认为这是由于this.selectedIndex。因为在拼接之后,并没有具有selectedIndex的项目。因此,您可以更改removeone函数,如下所示。

public removeone() {
console.error('remove: ', this.selectedIndex)
/** REMOVE THE LINE BELOW TO LET THE STEPS STAY ON THE SCREEN */
// this.stepper._steps.first.select();
var  selected = this.selectedIndex;
this.stepper._stateChanged();
this.change.detectChanges();
this.stepper.previous();
this._list.splice(selected, 1);
}

最新更新