我有一個不同的元素的HTML頁面,根據一些條件(相同的條件)將顯示/隱藏使用Angular的ng-if。多ng - 如果在相同的條件下 - 性能明智
在我的控制器中,我創建了一個boolean
變量。
$scope.myCondition = getValue();
在我看來,我聽這個變量使用ng-if
指令。
會有什麼更好的性能明智:
- 編寫更乾淨的代碼但多
ng-if
在此條件下:
<div> \t \t
\t <div ng-if="myCondition" >-- a --</div>
\t <div ng-if="!myCondition">-- A --</div> \t
\t <div>
\t \t -- text, text, text... --
\t </div>
\t <div ng-if="myCondition" >-- b --</div>
\t <div ng-if="!myCondition">-- B --</div> \t
\t <div>
\t \t -- text, text, text... --
\t </div>
\t <div ng-if="myCondition" >-- c --</div>
\t <div ng-if="!myCondition">-- C --</div> \t
\t <div>
\t \t -- text, text, text... --
\t </div>
</div>
- 寫代碼重複(在視圖中)BUT使用單
ng-if
:
<div ng-if="myCondition"> \t \t
\t <div>-- a --</div>
\t <div>
\t \t -- text, text, text... --
\t </div>
\t <div>-- b --</div>
\t <div>
\t \t -- text, text, text... --
\t </div>
\t <div >-- c --</div>
\t <div>
\t \t -- text, text, text... --
\t </div>
</div>
<div ng-if="!myCondition"> \t \t
\t <div>-- A --</div>
\t <div>
\t \t -- text, text, text... --
\t </div>
\t <div>-- B --</div>
\t <div>
\t \t -- text, text, text... --
\t </div>
\t <div >-- C --</div>
\t <div>
\t \t -- text, text, text... --
\t </div>
</div>
我更喜歡寫代碼作爲顯示在例如1號,因爲它是更易於維護。但我擔心這種方式會爲每個ng-if
創建一個新的$watch
。
這是正確的嗎?是否爲每個ng-if
創建新的$watch
,儘管這是相同的靜態條件(不是某個函數的返回值,而是一個簡單變量)。
這個問題問關於ng-if
指令,但相關也ng-show
和ng-hide
每個人都會擁有自己的手錶,所以從性能的角度來看,你是正確的,2nd會更好。 – charlietfl