我的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;
});
};