在Angular 8项目中,
我有一个创建和编辑组件。
我只是复制/重构了创建内容以进行编辑。
进入编辑模式后,组件会订阅一个行为主题,该行为主题是下一个要编辑的对象(因为它是一个行为主题,无论时间范围如何,我的组件都会正确地实例化该对象)
在编辑情况下,我没有实例化具有空值的表单,而是直接将调高的值实例化了。
好。
现在,对用户来说,实际上就像他在编辑该对象。
问题在于,首先要当然要首先满足要创建对象的表单验证条件,因此突出显示了“提交”按钮并准备就绪。
我希望touched属性已经是一个验证条件,并且希望禁用提交按钮,直到触摸值为止。
(不同是理想的选择,但感动是一个很好的起点)
现在我的编辑表单开始是有效的,我不希望这样。
我不想通过设置该字段的无效标志之一来“破解”此代码,因为我不抢先知道用户将要编辑的内容,而是希望它成为任何字段,并且用户可以只需编辑1-n字段即可使表单有效。
答案 0 :(得分:2)
对于Angular ^ 8:
将值设置为控件后,将表单标记为原始格式
this.form.markAsPristine();
并添加条件“提交”按钮以使表单保持不变:
<button type="submit" [disabled]="form.pristine">Save</button>