假设我们有一个像
这样的例子<body ng-controller="SomeCtrl as Ctrl">
<input type="checkbox" ng-model="Ctrl.checked"></input>
<div ng-if="Ctrl.checked">Some content</div>
</body>
和
<body ng-controller="SomeCtrl as Ctrl">
<input type="checkbox" ng-model="Ctrl.checked"></input>
<div ng-show="Ctrl.checked">Some content</div>
</body>
ng-if和ng-show / ng-hide在上面的例子中都达到了相同的效果。那么为什么我们在angularjs中有这个功能的两个单独的指令。
答案 0 :(得分:1)
ngIf从DOM中删除元素,ngShow保留它但将其隐藏在视图中:
来自https://docs.angularjs.org/api/ng/directive/ngIf:
ngIf指令根据{expression}删除或重新创建DOM树的一部分。如果分配给ngIf的表达式求值为false值,则从DOM中删除该元素,否则将元素的克隆重新插入DOM中。