范围值未在ajax响应中更新

时间:2016-07-03 21:22:58

标签: angularjs

我的ng-if依赖于我的控制器中的changePW范围var。我需要使用ng-if而不是show,因为为表单隐藏了一组inputs,其中包含错误检查。如果不应该显示错误,我不希望错误检查。

ng-if最初工作正常,但当用户更新其个人资料并收到回复时,我会调用$scope.reset()changePW设置为false。但这似乎并未删除inputs中的div。为什么是这样?它似乎没有更新$scope.changePW响应中的$http

HTML:

<p class="toggle" ng-click="changePW = !changePW">{{ (!changePW) ? 'Change Password' : 'Enter new password info:' }}</p>

changePW {{ changePW }} // False to start. But changes when I click to show the section. This stays as True when the response returns and "reset()" is called.
<div ng-if="changePW">
     ...

控制器:

//initialize $scope values 
$scope.reset();
...
//update profile
Me.updateProfile($rootScope.me).then(function (res) {
        alertify.success('User profile updated!');
        $scope.reset(); //reset changePW to rehide that part of the form

...
$scope.reset = function () {
    $rootScope.safeApply(function () {
        $scope.changePW = false;
    });
};

0 个答案:

没有答案