所以我有这个 div:
<div ng-if="myCheck">
content
</div>
我正在更改控制此 div 所在页面的 AngularJs Controller 中的 myCheck。 默认情况下它被设置为 false,这使得 div 元素不出现。
如果在页面上执行某些操作后 myCheck 从 false 更改为 true,则 div 元素将显示为 ti 应有的样子。
问题是div出现过一次后,再把myCheck设置为false就不会隐藏了。相反,当我将 myCheck 设置为 false 然后多次设置为 true 时,我将获得相同 div 的副本。
在 1.0.8 版本中不是这种情况,但在每个较新的版本中都是如此。 可能是什么原因以及如何绕过它?
这是改变 Controller 中条件的原因:
$scope.$watch('form.myValue', function (newVal, oldVal) {
if (typeof newVal != 'undefined') {
switch (newVal.code) {
case "case1":
$scope.myCheck1 = true;
$scope.myCheck2 = false;
$scope.myCheck3 = false;
break;
case "case2":
$scope.myCheck2 = true;
$scope.myCheck1 = false;
$scope.myCheck3 = false;
break;
case "case3:
$scope.myCheck3 = true;
$scope.myCheck1 = false;
$scope.myCheck2 = false;
break;
}
}
}, true);
我使用了一个多选下拉框,它使 form.myValue 具有一个值,并且根据该值进行切换。
最佳答案
ng-if 在 angular 1.0.8 稳定版中不存在。 https://code.angularjs.org/1.0.8/docs/api
后续版本加入
关于javascript - 从 1.0.8 更新后,AngularJs 中的 If 语句不删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567783/