此函数(在控制器中声明)被调用16次:
$scope.test = function(hour){
console.log("hi")
}
在我的html模板中使用ng-bind调用该函数:
<span ng-bind="test()"></span>
似乎我接下来要做的事情(例如,在我的应用程序的某处更改ng-show的值),呼叫计数增加1。
是否有任何理由发生这种情况(我认为消化周期),我该如何预防呢?我不认为它非常有效。
答案 0 :(得分:0)
查看ngBind文档。这是指令的要点。它会在每个摘要中调用您的测试函数。
ngBind属性告诉Angular替换文本内容 指定具有给定表达式值的HTML元素,以及 当表达式的值发生变化时更新文本内容。
如果您使用的是角色1.3并且在稳定后不想更新该范围,则可以进行一次性绑定。
var app = angular.module('app', []);
app.controller('myController', function($scope) {
$scope.counter = 1;
$scope.increment = function() {
$scope.counter++;
}
$scope.test = function(hour) {
return $scope.counter;
};
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="myController">
{{ counter }}
<div ng-bind="test()"></div>
<div ng-bind="::test()"></div>
<button ng-click="increment()">increment</div>
</div>
</div>
&#13;
答案 1 :(得分:-1)
使用ng-init代替ng-bind,它将在第一次调用 所以而不是
<span ng-bind="test()"></span>
使用此
<span ng-init="test()"></span>