2016-07-14 75 views
0

與角度問題一段時間編程之後發生對我說:什麼是更快?角表達式或控制器代碼

什麼是「快」 /「輕加工」控制器,以及爲什麼NG-XXXX statments或做代碼? 一個例子是:

在控制器:

var aid= document.getElementById("Aid"); 
if($scope.Mode == "mode1") aid.style.visibility = 'visible'; else aid.style.visibility = 'hidden'; 

在HTML:

<div id="Aid" ng-if="Mode== 'mode1'"> 

在我當前的項目,我發現,使用NG-如果讓應用程序響應 「更好」但在改變我的編碼風格之前,當我不得不隱藏元素時,我想知道更多

+3

我不認爲這可以成爲問題的明確答案。這取決於每一個案例。當有疑問時,測量:) – meskobalazs

+0

取決於你想要做什麼。 –

+3

你有那裏的手動dom操作,它絕對不應該在控制器中。這是什麼指令(在你的情況下是'ng-if')。順便說一句,'ng-if'不等於翻轉'visibility'。 –

回答

2

什麼是「更快」 /「打火機處理」ng-xxxx語句或在控制器中執行代碼,爲什麼?一個例子是:

正如一位評論你的問題說:

「我不認爲可以對這個問題一個明確的答案這取決於每一個案件.. 」

除非你正在處理一個表10000+行,所有與幾個角度內置指令和{{綁定}},你不會真正看到一個性能命中。如果是的話,那麼有更好的方式來改善UI(例如分頁,延遲加載,無限滾動),同時仍然使用像內置指令這樣的已經驗證過的工具。

我認爲你應該問的更重要的問題是「爲什麼我會通過做XYZ違背最佳實踐」。使用你所提出的控制器代碼:

var aid= document.getElementById("Aid"); 
if($scope.Mode == "mode1") aid.style.visibility = 'visible'; else aid.style.visibility = 'hidden'; 

...絕對是違背任何角度的最佳實踐和應避免。您已在提供的ng-if指令中爲此提供指令。

相關問題