2016-06-28 81 views
-1

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

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

你传递$timeout作为参数传递给你的函数

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

这将使当你调用该函数,因为你不一起传递它不确定的。删除它将解决问题。

scope.searchfunc = function(search_name) 

您可以了解它是如何工作(关闭)here

1

您在内部函数重载$timeout
就忽略它:

$scope.searchfunc = function(search_name) { 

可能是你的意思是keyword_type第二个参数?
因为现在看起来像undefined

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