什么更快?角度表达式或控制器代码

时间:2016-07-14 14:10:11

标签: javascript angularjs html5 ionic-framework

经过一段时间的角度编程后,我遇到了一个问题:

什么是"更快" /"更轻的处理" ng-xxxx语句或在控制器中执行代码,为什么? 一个例子是:

在控制器中:

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-if会使应用响应变得更好&#34;但在改变我的编码风格之前,我必须隐藏元素,我想知道更多

1 个答案:

答案 0 :(得分:2)

  

什么是“更快”/“更轻的处理”ng-xxxx声明或在控制器中执行代码?为什么?一个例子是:

正如你的问题的一位评论者所说:

  

“我认为这不能成为问题的明确答案。这取决于每一个案例......”

除非你在桌面上处理10000多行,所有行都有几个角度内置指令和{{bindings}},否则你不会真正看到性能损失。如果你是,那么有更好的方法可以调整UI(例如分页,延迟加载,无限滚动),同时仍然使用内置指令等经过验证的工具。

我认为你应该问的更重要的问题是“为什么我会通过做XYZ来反对最佳做法”。使用您建议的控制器代码:

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

...绝对违反任何有角度的最佳做法,应该避免。您已经在提供的ng-if指令中有了一个指令。