首页 > 解决方案 > Angular JS $timeout 和 $scope 函数通信

问题描述

我只是在 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() 的区别

标签: javascriptangularjswebangularjs-scopetimeout

解决方案


因为$scope.function()是错误的。

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

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

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

范围可用于视图和控制器。


推荐阅读