AngularJS:$ timeout不是函数

时间:2016-06-28 10:35:30

标签: javascript angularjs timeout

我试图通过使用超时方法添加2000毫秒的延迟,但如果我尝试在cotroller中的函数(searchfunc)中调用它,它就无法工作。它给出了错误:$ timeout不是一个函数。 控制器代码:

var angularjsapp = angular.module('graphApp', ['ngAnimate', 'ui.bootstrap','ui.grid']);

angularjsapp.controller('AccordionDemoCtrl', function($scope, $timeout) {

    $scope.searchfunc = function(search_name,$timeout) {
        WebSocketTest(search_name,keyword_type);
        //$scope.loading = false;
        $timeout(function () {
            $scope.loading = false;
        }, 2000);

});

2 个答案:

答案 0 :(得分:2)

您将$timeout作为参数传递给您的函数

$scope.searchfunc = function(search_name,*$timeout*

当你调用函数时会使它未定义,因为你没有传递它。删除它将解决问题。

scope.searchfunc = function(search_name)

您可以阅读有关其工作原理(闭包)here

答案 1 :(得分:1)

您在内部功能中覆盖$timeout 省略它:

$scope.searchfunc = function(search_name) {

可能意味着第二个参数为keyword_type? 因为它现在看起来像undefined

$scope.searchfunc = function(search_name, keyword_type) {