我正在为一个对话框使用 mat-stepper,该对话框既用于创建新实体,也用于编辑特定类型的现有实体。步进器由四个步骤组成。前三个步骤中的每一个都包含一个用于输入数据的表格,而最后一步只是对通过前三个步骤输入的数据的摘要/概述。
如果他/她在所有三个步骤中都输入了有效数据,我只想让用户进入最后一步。为此,我将linear
属性添加到步进器以强制用户完成每个步骤。当用户通过对话框创建新实体时,这非常有效。但是,在编辑现有实体时,例如,在至少单击第 2 步之前,不可能直接进入第 3 步。在编辑模式下打开对话框时,我以编程方式用数据填充步骤中的所有字段现有实体,因此我希望允许用户直接转到任何步骤,只要在当前可见步骤中输入有效数据即可。这是一个显示问题的stackblitz:
stackblitz
尽管所有字段都已以编程方式填写,但在单击前面的步骤之前,我不能直接进入第 3 步或第 4 步。
我第一次尝试解决这个问题是linear
在编辑模式下打开对话框时删除该属性。虽然这具有预期的效果,但它还允许用户在一个步骤中清除一些字段,然后直接转到最后一步,我不想允许这样做,因为只有在所有前面的步骤都完成时才能到达最后一步完全填充了有效数据。
有没有办法在垫子步进器中实现这种行为?如果我的问题不清楚,请告诉我,我会尽力更详细地描述它。