Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS$log.debug不是一个函数_Javascript_Angularjs_Logging - Fatal编程技术网

Javascript AngularJS$log.debug不是一个函数

Javascript AngularJS$log.debug不是一个函数,javascript,angularjs,logging,Javascript,Angularjs,Logging,我有点沮丧,因为我不知道AngularJS$log服务出了什么问题。我不经常使用它,但我让它在我网站的另一部分工作,我认为它不工作的唯一原因是与then函数中的块范围有关在我的控制台中,尝试运行$log.debug时出现以下错误: TypeError: $log.debug is not a function at analysis.client.controller.js:23 at processQueue (angular.js:14551) at angular.

我有点沮丧,因为我不知道AngularJS
$log
服务出了什么问题。我不经常使用它,但我让它在我网站的另一部分工作,我认为它不工作的唯一原因是与
then
函数中的块范围有关
在我的控制台中,尝试运行
$log.debug
时出现以下错误:

TypeError: $log.debug is not a function
    at analysis.client.controller.js:23
    at processQueue (angular.js:14551)
    at angular.js:14567
    at Scope.$get.Scope.$eval (angular.js:15830)
    at Scope.$get.Scope.$digest (angular.js:15641)
    at angular.js:15869
    at completeOutstandingRequest (angular.js:5387)
    at angular.js:5659
这是我的analysis.client.controller.js文件:

'use strict';

angular.module('analysis').controller('AnalysisController', ['$scope', '$timeout', '$mdSidenav', '$mdComponentRegistry', '$log', 'Authentication',
    function($scope, $timeout, $mdSidenav, $mdComponentRegistry, $log, Authentication) {
        $scope.user = Authentication.user;

        // Option #1
        //
        // $scope.isOpen = function() { return $mdSidenav('right').isOpen(); };
        // $scope.toggle = function() { $mdSidenav('right').toggle() };


        // Option #2 - See https://github.com/angular/material/issues/974

        $scope.toggle = angular.noop;
        $scope.isOpen = function() {
            return false;
        };

        $scope.toggleLeft = function() {
            $mdSidenav('left').toggle()
                .then(function() {
                    $log.debug('toggle left is done');
                });
        };
    }

]);

提前感谢您的帮助

默认情况下,
$log
debug
方法被禁用。您需要从应用程序配置阶段启用
$log
,如下所示

app.config(function($logProvider){
  $logProvider.debugEnabled(true);
});

默认情况下未启用调试方法,因为并非所有浏览器都支持
console.debug
,但您可以在应用程序的配置阶段使用
$logProvider
启用它

'use strict';

angular.module('analysis')
  .config(function($logProvider){
    $logProvider.debugEnabled(true);
  })
  .controller('AnalysisController', function(
    $scope,
    $timeout,
    $mdSidenav,
    $mdComponentRegistry,
    $log,
    Authentication
  ) {
    $scope.user = Authentication.user;

    // Option #1
    //
    // $scope.isOpen = function() { return $mdSidenav('right').isOpen(); };
    // $scope.toggle = function() { $mdSidenav('right').toggle() };


    // Option #2 - See https://github.com/angular/material/issues/974

    $scope.toggle = angular.noop;
    $scope.isOpen = function() {
      return false;
    };

    $scope.toggleLeft = function() {
      $mdSidenav('left').toggle().then(function() {
        $log.debug('toggle left is done');
      });
    };
  });

仅供参考,当我无意中重新分配调试方法而不是调用它时,我遇到了同样的错误

$log.debug = 'My log message'
而不是:

$log.debug('My log message')

浏览到包含错误语句的页面后,我会在包含日志语句的其他页面上看到
“TypeError:$log.debug不是函数”

$log
默认情况下已启用。我最初尝试在没有配置设置的情况下访问
.debug
,但效果与预期一致。