【发布时间】:2016-11-17 03:36:08
【问题描述】:
为什么内部作用域发生变化时,角度逻辑表达式不更新值?
我有一个指令 ng-show 在逻辑为真时显示一个 div:
<div ng-show="!employee.name && !employee.job"></div>
比如说:
$scope.employee.name = true;
$scope.employee.job = false;
将隐藏 div (!employee.name && !employee.job == false)。但是当我们使用 angular $http 动态更改员工时:
$http.get('/api/job').
success(function(data) {
$scope.employee.name = data.name; // false
$scope.employee.job = data.job; // false
}); // !employee.name && !employee.job == true
视图中的逻辑值不变:
<td><% employee.name %></td> <!-- false-->
<td><% employee.job %></td> <!-- false-->
<!-- !false && !false == true -->
<td><% !employee.name && !employee.job %></td> <!-- STILL FALSE -->
<!-- funny thing is no error occurred -->
这就是为什么 div 不 显示成功$http request 因为逻辑确实不 得到更新?
<div ng-show="!employee.name && !employee.job"></div> <!-- does not show -->
【问题讨论】:
-
你的逻辑是倒退的,只有当两者都为假时才会显示
-
错字错误等待
-
创建一个重现问题的演示。
标签: javascript jquery angularjs