gpt4 book ai didi

javascript - 为什么更改范围在 ng-if 中不起作用,而是通过函数调用 - AngularJS

转载 作者:行者123 更新时间:2023-11-30 12:00:39 25 4
gpt4 key购买 nike

以下是我切换 hideQA 值的代码片段,该值在两种情况下都在正确更改,但如果我正在这样做,则不会正确隐藏 div -

`<button ng-click="hideQA = !hideQA">Reset</button>`

但如果我从方法更改值,它会正常工作,比如 -

`<button ng-click="resetForm()">Reset</button>`

谁能解释一下这背后的原因?

工作计划 - http://plnkr.co/edit/rIAAcibX2Ts1VaMWKQtc?p=preview

最佳答案

ng-if 有自己的 $scope,当元素被移除时,$scope 也会移除。所以你必须使用 $parent

来引用父作用域
<button ng-click="$parent.hideQA = !hideQA">Reset</button>

另一种选择是使用 ng-show

<div class="message" ng-show="hideQA !== false">
This is div two !!!
<button ng-click="hideQA = !hideQA">Reset</button>
</div>

关于javascript - 为什么更改范围在 ng-if 中不起作用,而是通过函数调用 - AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36696013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com