Angular 2.0有没有类似于Angular 1中的`$setPristine`函数?

3
提交表单后,输入框的pristine状态仍为“false”。我不知道如何将pristine状态重置为true。在Angular 1中,我会使用$setPristine函数。
2个回答

1

谢谢。所以,我猜还没有正式的方法来重置属性,例如dirty、touched等。 - Bowen
不,PR添加之前不能这样做。 - Günter Zöchbauer

1
我查看了API和开发者指南。没有API可以将输入重置为原始状态。
相反,表单开发者指南("添加英雄并重置表单"一节)展示了一种通过在组件上添加一个活动标志来将表单重置为原始状态的机制。然后使用ngIf指令将其绑定到表单标签上。
  active = true;

  newHero() {
    this.model = new Hero(42, '', '');
    this.active = false;
    setTimeout(()=> this.active=true, 0);
  }

并且

<form *ngIf="active">

这会重新生成表单,并将其控件重置为原始状态。


我已经尝试过这种方法,但是当"active"再次设置为true时,整个网页都会刷新。而且页面刷新后数据也会消失。 - Bowen
1
开发人员指南还提到,添加活动仅是一种临时方法。 - Bowen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接