为什么我需要在按钮上单击2次才能更改位置

时间:2014-04-29 06:38:38

标签: angularjs

我想点击按钮将当前网址更改为其他网页。但问题是我需要单击按钮2次然后更改位置。

这是我的代码

function CreateUserController($scope, $location) {
    $scope.submitForm = function(angObj) {
        if(angObj.$valid) {
            $.ajax({
                url: "/users/createUserNew",
                type: "POST",
                processData: false,
                data: $("#createUserForm").serialize(),
                success: function (data) {
                    console.log('passed');
                    $location.path("/users");
                },
                error: function (data) {
                }
            });
        }
    }
}

为什么我需要点击按钮2次才能更改位置?

<button ng-click="submitForm(userForm)" ng-disabled="userForm.$invalid" ng-class="{'disabled' : userForm.$invalid}" class="btn btn-primary">        
    <span class="btn-title">Create New User</span>
</button>

1 个答案:

答案 0 :(得分:1)

似乎视图根本没有更新。

您可以使用$ apply将调用包装到$ location.path以强制刷新。

例如:

$scope.$apply(function() { $location.path("/users"); });

有关何时使用$ apply的详细信息,请参阅this