gpt4 book ai didi

javascript - 范围在 Angular 上表现不同

转载 作者:行者123 更新时间:2023-11-28 15:10:45 24 4
gpt4 key购买 nike

我正在尝试理解 Angular 范围。

<html>

<head>
<title>Angular JS Services</title>
<script src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>

<body>
<h2>AngularJS Sample Application</h2>

<div ng-app = "mainApp" ng-controller = "TestController">
<p>Enter a number: <input type = "number" ng-model = "number" /></p>
<p>Result using fn: {{resultData()}}</p>
<p>Result using var: {{result}}</p>
</div>

<script>
var mainApp = angular.module("mainApp", []);

mainApp.controller('TestController', function($scope) {

$scope.result = $scope.number * $scope.number;

$scope.resultData = function(){
console.log("test");
return $scope.number *$scope.number;
}

});
</script>

</body>
</html>

这里使用 var 的结果未按预期提供数据。为什么使用 fn 的结果工作正常并且可以看到 fn 被执行了 3 次。这背后的真正原因是什么。

提前致谢

最佳答案

因为 Angular 在每个摘要周期中都会评估模板变量。基本上,它会尝试再次填充每个作用域更改的模板表达式,直到作用域上的变量稳定为止。

关于javascript - 范围在 Angular 上表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com