Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AngularJS中实现JavaScript闭包?_Javascript_Angularjs_Closures - Fatal编程技术网

如何在AngularJS中实现JavaScript闭包?

如何在AngularJS中实现JavaScript闭包?,javascript,angularjs,closures,Javascript,Angularjs,Closures,我正在使用一个函数来计算按钮的点击次数,如下所示: $scope.counterFunc = (function(){ var count = 0; console.log('i will be consoled only once'); return function(){ console.log(count); return ++count; } })(); 视图: <button ng-click="counterFu

我正在使用一个函数来计算按钮的点击次数,如下所示:

$scope.counterFunc = (function(){
    var count = 0;
    console.log('i will be consoled only once');
    return function(){
        console.log(count);
        return ++count;
    }
})();
视图:

<button ng-click="counterFunc()">click me</button>
<div>  
    {{ count value }}
</div>
点击我
{{计数值}}
我可以控制
计数值
,但如何在视图中显示它

我可以使用
$scope
变量绑定
计数值
进行查看,但我担心的是
计数
不应该被
反函数()之外的任何其他函数更改

还有别的办法吗

您的
counterFunc()
已经在通过
ng单击执行时返回递增的值。您可以将其分配给视图上的变量,如下所示

<button ng-click="count = counterFunc()">click me</button>
<div>
  {{ count }}
</div>
现在,您将看到,每次按下重置
按钮
,显示的值将变为
0
。但是,当您再次按下
单击我
时,它将从
var count
的最后一个值开始

<button ng-click="count = counterFunc()">click me</button>
<div>
  {{ count }}
</div>
<button ng-click="count = 0">Reset</button>