根据docs:
如果表达式为
falsy
,则从DOM中删除该元素 树。如果它是真实的,则编译元素的副本被添加到 DOM树。
(我正在使用ver 1.4.8)
但是看看plunker:
我有这个标记:
<p ng-if="null">
<p ng-include="'1.html'">***</p>
</p>
1.html
的位置:
1.html
<div ng-controller="ctrl1">
{{a}}
</div>
控制器在哪里:
var app = angular.module("myApp",[]);
app.controller('ctrl1',function ($scope){$scope.a=1});
但输出是:
1.html
1
问题
我做了ng-if="null"
而null
是一个假值。
为什么它仍然显示内在内容?
ps - 如果我放一个常规标签:
<p ng-if="null">
<b>Hello</b>
</p>
它不会显示它。
答案 0 :(得分:4)
您的html无效,意味着您无法使用嵌套的p
代码,内部p
代码会被抛弃。
P元素代表一个段落。它不能包含块级 元素(包括P本身)。
HTML下方
<p ng-if="null">
<p ng-include="'1.html'">***</p>
</p>
呈现为
<p ng-if="null"></p>
<p ng-include="'1.html'">***</p>