Javascript Angularjs一次绑定调用两次

Javascript Angularjs一次绑定调用两次,javascript,angularjs,Javascript,Angularjs,为什么一次绑定调用两次 var-app=angular.module('myApp',[]); 应用程序控制器('myCtrl',函数($scope){ $scope.foo=函数(){ console.log('foo'); 返回“foo”; } }); 每次摘要都会调用绑定函数,即使它是一次性绑定。若要避免这种情况,请使用NgInit调用函数一次 var-app=angular.module('myApp',[]); 应用程序控制器('myCtrl',函数($scope){ $scope

为什么一次绑定调用两次

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.foo=函数(){
console.log('foo');
返回“foo”;
}
});

每次摘要都会调用绑定函数,即使它是一次性绑定。若要避免这种情况,请使用NgInit调用函数一次

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.foo=函数(){
console.log('foo');
返回“foo”;
}
});


这是angular core中的一个问题,阅读他们对此问题进行详细讨论的帖子,他们解释了一次性绑定不是我们认为的方式,表达式求值可以多次调用。

一次性绑定并不意味着函数不会在每个摘要中求值。若你们不想调用它,那个么在控制器中运行它一次,并设置一个变量来传递给view而不是Agree。我可以替换为初步初始化。但是,如果存在大量依赖于某些逻辑的一次性绑定,那么从一般角度来看,它是没有用的。好吧,但它会产生什么问题呢?它与性能有关。性能增益来自较少的观察者。您无法控制内部如何处理摘要如果是一次性绑定,则不会在每个摘要中调用绑定函数。