ng-if && ng-show 區(qū)別
先看代碼:
Code1 -- ng-if
<div class="container-fluid">
<p ng-if="!changing">
{{title}}
<button type="button" ng-click="changing = true" class="btn btn-primary">修改</button>
</p>
<p ng-if="changing">
<input type="text" class="form-control" ng-model="title" />
<button type="button" ng-click="changing = false" class="btn btn-primary">保存</button>
</p>
</div>
Code2 -- ng-show
<div class="container-fluid">
<p ng-show="!changing">
{{title}}
<button type="button" ng-click="changing = true" class="btn btn-primary">修改</button>
</p>
<p ng-show="changing">
<input type="text" class="form-control" ng-model="title" />
<button type="button" ng-click="changing = false" class="btn btn-primary">保存</button>
</p>
</div>
可以發(fā)現(xiàn) Code1 -- ng-if
無法打開砂吞,原因如下:
1.優(yōu)先級
ng-if
的優(yōu)先級為 600
, 高于絕大部分其它原始指令崎溃,比如 ng-click
2.
ng-if
有自己的$scope
因為每一個 ng-if
都會有自己的作用域,所以當(dāng)去更新 changing
值時概而, 只會針對 ng-if
的作用域囱修,而父作用域中的值不會改變
ng-if 和 ng-show 核心區(qū)別
-
ng-if
會創(chuàng)建作用域, 每次都會重新創(chuàng)建或移除DOM -
ng-show
只是改變CSS樣式餐曼,無獨(dú)立的作用域源譬,display: none !important