我有这个简单的控制器标记
<div ng-controller="TestCtrl" ng-show="isVisible()"> <input type="text" ng-model="smth"/><br> <span>{{smth}}</span> </div>
和控制器本身
function TestCtrl($scope, $log) { $scope.smth = 'smth'; $scope.isVisible = function(){ $log.log('isVisible is running'); return true; } }
为什么每次对模型进行少量更改(例如,在文本框内更改一个字母)后,就可以isVisible is running在控制台中看到?在这种情况下这不是问题,但我认为它将在大型应用程序中使用。我可以避免吗?
isVisible is running
这是正常的,因为这是AngularJS如何完成其“魔术”的必不可少的步骤。
有多种技术可以确保您不会遇到性能问题,但是不会,通常,您不能排除那些表达式的计算。