如何使用$ timeout调用作用域中的方法

时间:2014-04-23 19:05:36

标签: angularjs

我正在尝试使用$timeout来调用我拥有的一个函数,但我不知道如何调用$scope中的函数。让我举例说明

我有这个:

$scope.play = function(){    
    // function implementation
    if(condition()){
        $timeout(play, 1000);
    }
}

它无法识别play功能,我也尝试了这个

$timeout($scope.play, 1000);

它也不起作用。我不得不像这样解决这个问题:

var play = function(){
    $scope.playInner();
}

$scope.playInner = function(){    
    // function implementation
    if(condition()){
        $timeout(play, 1000);
    }
}

但我确信有更好的方法可以做到这一点,是否有人知道我该怎么做?

1 个答案:

答案 0 :(得分:2)

正如JB Nizet建议的那样,$timeout($scope.play, 1000)应该可以正常工作。

示例:

function ctrl($scope,$timeout){
    $scope.data=0;
    $scope.play=function(){
        $scope.data++;
        $timeout($scope.play,1000);
    }    

}

实例:http://jsfiddle.net/choroshin/wF8SZ/