javascript - AngularJS $log.debug 不是函数

标签 javascript angularjs logging

我有点沮丧,因为我无法弄清楚 AngularJS $log 服务有什么问题。我不经常使用它,但我让它在我网站的另一部分工作,我认为它不起作用的唯一原因是与 then 中的 block 作用域有关功能。
在我的控制台中尝试运行 $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');
                });
        };
    }

]);

在此先感谢您的帮助!

最佳答案

默认情况下不启用调试方法,因为并非所有浏览器都支持 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');
      });
    };
  });

关于javascript - AngularJS $log.debug 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31058643/

相关文章:

javascript - POST 重定向

javascript - html5音频GUI开发

javascript - 在 Angular SPA 中将 Controller 添加到 index.html

python - 如何查看 Django View 的错误日志

.net - 日志策略与性能

amazon-web-services - 管理/删除/轮换/流式传输 Elastic Beanstalk 日志

javascript - 根据 Google Maps API v3 中的地理位置精度设置缩放级别

javascript - 随机报价机 - 使用 jQuery 单击更改颜色

javascript - 如何获得带有选择/取消选择所有功能和不确定值的 angular.js 复选框?

javascript - angularjs:用于显示一张图像与另一张图像的 if 语句