【发布时间】:2013-11-01 05:38:14
【问题描述】:
有没有办法告诉 AngularJS 不要显示具有 ng-if 指令的顶部 HTML 元素。我希望 Angular 仅显示子内容。
角度代码:
<div ng-if="checked" id="div1">
<div id="div2">ABC</div>
<div id="div3">KLM</div>
<div id="div4">PQR</div>
</div>
呈现的 HTML:
<div id="div1">
<div id="div2">ABC</div>
<div id="div3">KLM</div>
<div id="div4">PQR</div>
</div>
我想要什么:
<div id="div2">ABC</div>
<div id="div3">KLM</div>
<div id="div4">PQR</div>
这是一个小提琴。 http://jsfiddle.net/9mgTS/。我不想在 HTML 中使用 #div1。如果checked 是true,我只想要#div2,3,4。
一种可能的解决方案是向所有子元素添加 ng-if,但我不想这样做。
【问题讨论】:
-
如果不使用自定义模板创建指令,就无法告诉 Angular 不输出父元素。你可以使用
template:function(el,attrs)来运行一些基于属性的逻辑并返回相应的html -
在 Angular2 中(以防有人意外到达这里),使用 ng-container:
<ng-container *ngIf="true">
标签: javascript angularjs angularjs-ng-if