angularjs $ setPrestine不能始终如一地工作

时间:2017-12-15 04:05:21

标签: javascript angularjs

以下代码是登录表单。有了这个,我可以在第一次重置表单字段和错误消息(成功或失败第一次工作)。第二次我无法休息。此外,登录过程也会失败,并且不会显示失败或成功。因为现在数据未定义,而在控制台上它会抛出错误415(不支持的媒体类型)。如果我删除重置部分,登录过程正常。我在重置时做错了什么?

在控制器中:

 App.controller('HomeCtrl', ['$scope', 'Users', '$window', '$location', '$rootScope', 
function($scope, Users, $window, $location, $rootScope) {

        var original = $scope.users;
        $scope.users = {};
        $scope.form = {};

    $scope.reset = function() {
            $scope.users = angular.copy(original);
            $scope.form.loginForm.$setPristine(); 
        };
    } ]);

1 个答案:

答案 0 :(得分:1)

我认为在您的情况下,您的用户表单字段不会被重置。

将代码OnActionExecuted替换为$scope.users = angular.copy(original);

否则最初使用$scope.users = {};

如需更多帮助,请查看文档here

希望这会对你有所帮助!!