AngularJS中的每个模型更改后,是否都会在ng-show中触发表达式?

发布于 2021-02-01 10:23:30

我有这个简单的控制器标记

<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在控制台中看到?在这种情况下这不是问题,但我认为它将在大型应用程序中使用。我可以避免吗?

关注者
0
被浏览
60
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    这是正常的,因为这是AngularJS如何完成其​​“魔术”的必不可少的步骤。

    有多种技术可以确保您不会遇到性能问题,但是不会,通常,您不能排除那些表达式的计算。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看