Angular JS $ timeout和$ scope函数通信

时间:2018-08-28 10:46:32

标签: javascript angularjs web angularjs-scope timeout

我只是在angularjs中发现了奇怪的东西(对我而言)。为什么这些部分的工作方式不同?

超时有效(8秒后提醒)

$scope.testfun = function(){
    alert(2);
}
$scope.activate = function(h,m,s){
    if(h != 0 || m != 0 || s != 0) $timeout($scope.testfun, 8000);
}

超时无效(暂时提醒)

$scope.testfun = function(){
    alert(2);
}
$scope.activate = function(h,m,s){
    if(h != 0 || m != 0 || s != 0) $timeout($scope.testfun(), 8000);
}

$ scope.testfun和$ scope.testfun()的区别

2 个答案:

答案 0 :(得分:0)

您需要编写如下超时函数:

$scope.testfun = function() {
    alert(2);
}

$scope.activate = function(h,m,s) {
    if (h != 0 || m != 0 || s != 0) {
      $timeout(function () {
        $scope.testfun();
      }, 8000);
    }
}

答案 1 :(得分:0)

对于$scope.function()是错误的。

$timeout(function() { $scope.testfun(someParam); }, 8000) 

范围是HTML(视图)和JavaScript(控制器)之间的绑定部分。

范围是具有可用属性和方法的对象。

该作用域可用于视图和控制器。