2013-05-07 28 views
2

我有一些代碼運行兩次,即使你的angularJs只渲染它的一個分支。angularjs:如何防止在ng-hide之後處理額外的指令

<div ng-Show="SomeCondition"> 
... 
</div> 
<div ng-Hide="SomeCondition"> 
... 
</div> 

AngularJs正確地只渲染其中一個div,但它正在處理兩者。這會導致一些性能下降,因爲每個部分都相當大。有沒有辦法從執行的一個分支中刪除處理?

回答

2

你在找什麼是ng-switch,它將'有條件地改變DOM結構。'這意味着其他情況將不會運行,這與使用僅調整CSS的ng-hide/ng-show不同。

http://docs.angularjs.org/api/ng.directive:ngSwitch

<div ng-switch on="SomeCondition"> 
    <div ng-switch-when="true">Example</div> 
    <span ng-switch-when="false">Example Two</span> 
    <span ng-switch-when="somethingElse">Example Three</span> 
    <span ng-switch-default>default</span> 
    </div>