【问题标题】:AngularJS : $timeout is not a functionAngularJS:$timeout 不是一个函数
【发布时间】:2016-06-28 10:35:30
【问题描述】:

我正在尝试使用 timeout 方法添加 2000 毫秒的延迟,但如果我尝试在控制器内的函数 (searchfunc) 中调用它,则它不起作用。它给出了 Error: $timeout is not a function 。 控制器代码:

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

});

【问题讨论】:

    标签: javascript angularjs timeout


    【解决方案1】:

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

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

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

    scope.searchfunc = function(search_name)
    

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

    的信息

    【讨论】:

      【解决方案2】:

      您在内部函数中覆盖 $timeout
      省略它:

      $scope.searchfunc = function(search_name) {
      

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

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

      【讨论】:

        猜你喜欢
        • 2014-08-08
        • 2015-09-12
        • 2016-05-21
        • 2018-06-27
        • 2015-09-18
        • 1970-01-01
        • 1970-01-01
        • 2015-10-08
        • 2016-07-12
        相关资源
        最近更新 更多