角度ng变化与ng模型性能

时间:2014-02-27 16:01:22

标签: javascript performance angularjs

在输入中使用ng-change而不是ng-model是否有任何性能改进?

我认为当在输入中使用ng-model时,在变量中使用角度来表示“$ watch”(或类似),这会增加工作量。

但是如果使用ng-change,那么变量(模型)可以在需要时更新,只有当输入改变了这个变量时才能执行代码。

这假设只有一个输入可以改变变量。

示例如下:

使用ng-model

<input type="text" ng-model="ElTexto">
<div ng-show="ElTexto"></div>

使用ng-change

HTML

<input type="text" ng-change="elTexto()">
<div ng-show="ElTexto"></div>

JS

$scope.elTexto(){
  $scope.ElTexto = true;
}

2 个答案:

答案 0 :(得分:7)

ng-change requires ng-model,所以你不能在两者之间做出选择。您必须使用ng-model,如果愿意,还可以使用ng-change

请注意,这两者非常不同。 ng-model将保持您的输入值和支持模型完美同步; ng-change将指示用户正在与输入进行交互。如果您关心他们正在改变的价值,就像您正在进行自动完成一样,只需使用ng-model并让所有代码共享相同的变量即可。如果您特别想在输入更改时执行操作,无论值是什么,那么您可以使用ng-change

答案 1 :(得分:0)

ng-change将具有击球手表现ng-model。正如在每个摘要周期中一样,ng-model将被评估,而ng-change将根据输入的变化进行评估。