2016-06-28 14 views
-1

Ich versuche, eine Verzögerung von 2000ms mit der Timeout-Methode hinzuzufügen, aber es funktioniert nicht, wenn ich versuche, es in der Funktion (searchfunc) innerhalb der Cotroller aufzurufen. Es gibt Fehler: $ Timeout ist keine Funktion. Controller-Code:

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); 

}); 

Antwort

2

Sie vorbei $timeout als Parameter an die Funktion

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

, die sie machen nicht definiert, wenn Sie die Funktion aufrufen, weil Sie es nicht zusammen übergeben. Durch das Entfernen wird das Problem behoben.

scope.searchfunc = function(search_name) 

Sie können lesen, wie das funktioniert (Verschlüsse) here

1

Sie $timeout in der inneren Funktion außer Kraft setzen.
Sie es einfach weglassen:

$scope.searchfunc = function(search_name) { 

Mögest du zweiten Parameter keyword_type bedeuten werden?
Weil es jetzt aussieht wie undefined.

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