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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
图论——一个迷人的世界
本杰明,查特兰,张萍 / 机械工业出版社 / 2001-1-1
本书介绍了图论的基本概念,解释了图论中各种经典问题。例如,熄灯的问题、小生成树问题、哥尼斯堡七桥问题、中国邮递员问题、国际象棋中马的遍历问题和路的着色问题等等。书中也给出了各种类型的图,例如,二部图、欧拉图、彼得森图和树;等等。每一章都为读者设置了练习题,包含了具有挑战性的探索性问题。一起来看看 《图论——一个迷人的世界》 这本书的介绍吧!