我最近开始研究使用AngularJS等应用程序。一项看起来有点简单的任务,结果令人头疼。
我们的JS代码中有很多console.log()。我将使用Angular的$ log替换它们。我认为它会相当简单,但事实并非如此,可能是因为我一开始并不熟悉Angular。
我已经阅读了文档,特别是$ log,$ logProvider和$ service页面。我尝试将给出的示例应用于我的代码,但没有用。
根据我从应用程序代码中理解的内容(我刚刚开始研究它),我们使用专用于配置的“主”模块。它看起来像这样:
var mainApp = angular.module('mainApp'
['ui.router','datatables','ngMockE2E', 'ngResource','angularSpinner', 'ngCookies',
'pascalprecht.translate','ui.bootstrap', 'ngFileUpload', 'angular-jwt']);
mainApp.config(function($stateProvider, $urlRouterProvider, $httpProvider, $translateProvider) {
// Example of what we can find here
$translateProvider.useStaticFilesLoader(fileNameConvention);
$translateProvider.useSanitizeValueStrategy('escaped');
};
我们拥有(或几乎所有)的每个HTML文件都链接到一个控制器,其中引用了mainApp,如下所示:
mainApp.controller('ContractsController', ContractsController);
根据我的理解,为了避免在每个控制器中调用日志,我应该在mainApp中注入它。问题是,我已经尝试了几种方法,它们都没有工作(实际上,我甚至尝试在控制器中直接使用$ log,但它也没有用。)
如果有人能够指出我正确的方向,我会非常感激。
答案 0 :(得分:1)
在控制器中注入 $ log 应该有效。你看到了example
吗? angular.module('app', [])
.controller('MainCtrl', ['$log', function($log){
$log.debug('Hello Debug!');
}]);