Angular 当 for 处于原始状态时,表单变为原始状态

Angular form to pristine when for is in original state

我有一个表单,其中包含范围内对象的预设值。当我修改一个表单字段(例如名称字段)并将其从 Bob 更改为 Bobby 时,表单现在是 dirty 但是如果我删除名称末尾的 "y" 和 "b"该表格现在处于原始状态,但仍然是 dirty。当表格与开始时相同时,如何将其变为 return 到 pristine?我将原始状态保存在范围内,以便可以比较它们,但我没有将如何实现这一点联系起来。

这是一个显示我在上面描述的相同行为的示例:

http://www.angularjshub.com/examples/forms/formreset/

在你的控制器中尝试类似下面的操作,然后使用 ng-change 调用该函数。

$scope.resetWhenUnchanged = function()
{
    if (original === $scope.modifiedValue) {
        $scope.personForm.field.$setPristine();
    }
};