Angularjs 角度$timeout不';不要更新视图

Angularjs 角度$timeout不';不要更新视图,angularjs,angularjs-scope,Angularjs,Angularjs Scope,在我的控制器中,我有一个向RESTAPI发送POST请求的方法。成功/错误时,我想使用ng show显示成功/错误消息。问题是我的范围变量已更改,但我的视图未更新。 我尝试过使用$scope.$apply(),但这会引发$digest错误。 下面是我当前的代码。有什么想法吗 function AdminController($scope, $http, $timeout) { $scope.addUserError = false; $scope.addUserSuccess

在我的控制器中,我有一个向RESTAPI发送POST请求的方法。成功/错误时,我想使用
ng show
显示成功/错误消息。问题是我的范围变量已更改,但我的视图未更新。 我尝试过使用
$scope.$apply()
,但这会引发
$digest
错误。 下面是我当前的代码。有什么想法吗

 function AdminController($scope, $http, $timeout) {
    $scope.addUserError = false;
    $scope.addUserSuccess = false;

    $scope.createUser = function (newuser) {
        $http.post("rest/user", JSON.stringify(newuser)).success(function () {
            console.log("User added");
            $timeout(function () {
                $scope.addUserSuccess = true;
                $scope.addUserError = false;
            });
        }).error(function () {
            $timeout(function () {
                $scope.addUserSuccess = false;
                $scope.addUserError = true;
                console.log($scope.addUserError); //true
            });
        })
    }
    }

将代码更新为以下内容:

function AdminController($scope, $http, $timeout) {
    $scope.addUserError = false;
    $scope.addUserSuccess = false;

    $scope.createUser = function (newuser) {
        $http.post("rest/user", JSON.stringify(newuser)).success(function () {
            $scope.addUserSuccess = true;
            $scope.addUserError = false;
        }).error(function () {
            $scope.addUserSuccess = false;
            $scope.addUserError = true;
        });
    };
}
您的视图应该如下所示:

<div ng-show="addUserSuccess">User Added!</div>
<div ng-show="addUserError">Error adding user</div>
用户添加!
添加用户时出错

您不需要在这里使用超时。这只是一个简单的模型更新,angular将在$http调用中自动为您执行此操作。

您不需要
超时
-
$http
将触发一个
$digest
循环-您的调用中是否有任何错误?angular的租户之一是始终将您的属性放在$scope下的对象中。因此,您将使用
$scope.model.addUserSuccess
而不是
$scope.addUserSuccess
。有时,这就是修复类似问题所需的全部内容。@tymeJV没有错误。我把
错误{{addUserError}}
成功{{addUserSuccess}}
。它显示正确。你和tymeJV都是正确的。虽然我的错误也是我有
ngshow={{addUserSuccess}
。非常感谢。