ng-show和ng-if在角度1.x之间有什么区别?

时间:2016-10-11 02:03:36

标签: angularjs-directive

假设我们有一个像

这样的例子
<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中有这个功能的两个单独的指令。

1 个答案:

答案 0 :(得分:1)

ngIf从DOM中删除元素,ngShow保留它但将其隐藏在视图中:

来自https://docs.angularjs.org/api/ng/directive/ngIf

ngIf指令根据{expression}删除或重新创建DOM树的一部分。如果分配给ngIf的表达式求值为false值,则从DOM中删除该元素,否则将元素的克隆重新插入DOM中。