Javascript AngularJS$log.debug不是一个函数
我有点沮丧,因为我不知道AngularJSJavascript 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.
$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
,但效果与预期一致。