物料步进器-使用表单组数组时步消失

时间:2018-07-11 06:25:21

标签: angular angular-material2

我正在使用@angular/material的步进器,但有些行为我无法完全解释。我正在使用一个放置表单组的数组。该数组是ngFor的来源,并将项目传递给步骤。当我从数组中删除一项时,mat-step's就消失了。但是列表中仍然充满物品。

使用trackyby并没有帮助。唯一有用的是在更改状态之前选择其他步骤。 (请参阅第51行)

场景:

  1. 填写表格
  2. 点击添加一项
  3. 填写表格
  4. 按一下即可删除一项
  5. 看到步骤消失

Example on Stackblitz

问题:为什么会这样?

1 个答案:

答案 0 :(得分:0)

我认为这是由于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);
  }