<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app>
<div ng-controller="SomeCtrl">
<input ng-model="textProperty"/>
<span>{{computedProperty()}}</span>
</div>
</div>
脚本
function SomeCtrl($scope) {
$scope.textProperty = "initial";
var times = 0;
$scope.computedProperty = function(){
console.log(++times);
return $scope.textProperty+ " asdf";
};
}
有没有办法避免/解决 Angularjs 计算属性每次运行两次?
或者我是否必须为我永远不会在另一个 Controller 上重用的指令编写指令?
最佳答案
当您对 {{
使用插值时,实际上是在其中的表达式上创建了一个监视。由于 angularjs 在脏检查主体上工作,因此它在摘要循环期间多次重新评估表达式,您无法控制插值内定义的任何表达式运行的次数。
因此,这样的计算属性\方法应该没有副作用,因为它被多次调用,而您作为开发人员无法控制。
关于angularjs - 有没有办法避免/解决 Angularjs 计算属性每次运行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879084/