我有这个简单的控制器标记
<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
?在这种情况下这不是问题,但我认为它将在大型应用程序中使用。我可以避免吗? 最佳答案
这是正常的,因为这是AngularJS进行“魔术”的必不可少的步骤。该答案有更多详细信息:https://stackoverflow.com/a/9693933/1418796
有多种技术可以确保您不会遇到性能问题,但不能,通常,您不能排除那些表达式的计算。