javascript - 从 1.0.8 更新后,AngularJs 中的 If 语句不删除元素

标签 javascript jquery html css angularjs

所以我有这个 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/

相关文章:

javascript - 正则表达式获取字符串中具有特殊字符的子字符串

javascript - Angular2 - 从窗口点击检测实体点击?

jquery - bootstrap 下拉列表的值不会改变

jquery - wcf REST 服务和 JQuery Ajax 帖子 : Method not allowed

html - 在不使用 <center> 的情况下使 div 的子元素居中

javascript - 使用 scrollIntoView() 的 VueJS 组件

c# - 如何在jquery中独立于浏览器捕获精确的td值

javascript - 在嵌套数组中选择元素

html - 响应式表格使用 CSS 显示 : table-row

javascript - 为什么请求接受: */* when the browser is asking for a javascript file?