angularjs – 如果父项具有ng-if,则Angular ng-show不起作用
栏目: JavaScript · 发布时间: 5年前
内容简介:翻译自:https://stackoverflow.com/questions/20884786/angular-ng-show-not-working-if-parent-has-ng-if
我有一个视图,其中父div具有ng-if,并且一些子元素具有ng-show.当嵌套在具有ng-if的元素下时,ng-show似乎无法正常工作.这是一个Angular bug还是我做错了什么? See this plunker
.
HTML:
<!-- with ng-if on the parent div, the toggle doesn't work --> <div ng-if="true"> <div> visibility variable: {{showIt}} </div> <div ng-show="!showIt"> <a href="" ng-click="showIt = true">Show It</a> </div> <div ng-show="showIt"> This is a dynamically-shown div. <a href="" ng-click="hideIt()">Hide it</a> </div> </div> <br/><br/> <!-- with ng-show on the parent div, it works --> <div ng-show="true"> <div> visibility variable: {{showIt}} </div> <div ng-show="!showIt"> <a href="" ng-click="showIt = true">Show It</a> </div> <div ng-show="showIt"> This is a dynamically-shown div. <a href="" ng-click="hideIt()">Hide it</a> </div> </div>
JavaScript:
scope.hideIt = function () { scope.showIt = false; };
谢谢,
安迪
与ng-show不同,ng-if指令创建一个新范围.
因此,如果在子范围内而不是在主范围上设置showIt属性,则在ng内部编写showIt = true.
要修复它,请使用$parent访问父作用域上的属性:
<div ng-if="true"> <div> visibility variable: {{showIt}} </div> <div ng-show="!showIt"> <a href="" ng-click="$parent.showIt = true">Show It</a> </div> <div ng-show="showIt"> This is a dynamically-shown div. <a href="" ng-click="hideIt()">Hide it</a> </div> </div>
演示 Plunker .
翻译自:https://stackoverflow.com/questions/20884786/angular-ng-show-not-working-if-parent-has-ng-if
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
啊哈C!思考快你一步
啊哈磊 / 电子工业出版社 / 2013-9 / 39.00元
这是一本非常有趣的编程启蒙书,全书从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。并配合超萌的编程软件,从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述编程的思维。同时,与计算机展开的逻辑较量一定会让你觉得很有意思。你可以在茶余饭后阅读本书,甚至蹲在马桶上时也可以看得津津有味。编程将会改变我们的思维,教会我们如何思考,让我们的思维插上计算机的翅膀,以......一起来看看 《啊哈C!思考快你一步》 这本书的介绍吧!