Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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 Angular:调用函数,在间隔上更改范围变量_Angularjs - Fatal编程技术网

Angularjs Angular:调用函数,在间隔上更改范围变量

Angularjs Angular:调用函数,在间隔上更改范围变量,angularjs,Angularjs,我构建了一个函数,可以对字符串进行一些文本转换。我从我的角度调用这个函数 现在,我想每隔3秒从控制器以设定的间隔调用此函数 我试着在我的控制器中使用这个: $scope.MyTextFunction = function(input) { cancelRefresh = $timeout(function myFunction(input) { console.log(input); // Do things here cancelRefr

我构建了一个函数,可以对字符串进行一些文本转换。我从我的角度调用这个函数

现在,我想每隔3秒从控制器以设定的间隔调用此函数

我试着在我的控制器中使用这个:

$scope.MyTextFunction = function(input) {
    cancelRefresh = $timeout(function myFunction(input) {
        console.log(input);
        // Do things here
        cancelRefresh = $timeout(myFunction, 3000);
    },3000);
};
我很难让它工作。具体来说,视图中调用的所有函数似乎都再次被触发。所以console.log(input)每3秒被调用4次、8次、16次等等。(我猜这是因为消化周期?我不太清楚)

正如您所料,在该视图上停留20秒后,浏览器将变得无响应

我怎样才能使写一个函数

  • 每3秒触发一次
  • 绑定到范围,以便我可以在视图和
  • 不会触发视图中已经存在的所有现有函数吗

  • 我已经设置了一个包含文本转换字符串的plunkr:

    Use$interval。我想知道更多的信息。对于我的这个用例,文档中的示例非常复杂。到目前为止,关于Angular的$interval函数的最好解释是Joe Maddalone的视频:什么样的信息?这有用吗?调用$scope.MyTextFunction的频率是多少?每一次,这将创建一个新的计时器,并导致更多的执行。这可能就是你越来越多的电话的来源。你能发布更多的代码吗,或者是一个plunker或JSFIDLE?哈,我知道了!忘记$interval(像常规的js interval)不接受输入,所以必须将其包装在匿名函数中。谢谢你和我一起思考。