我试图通过使用超时方法添加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);
});
答案 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) {