我使用angular with angular-permission库。需要在控制台中禁用警告。
这个组件(angular-permission)调用angular $ log服务:
尝试在配置中禁用此功能,但警告仍显示:
$ logProvider.debugEnabled(假);
调用日志的代码:
function permissionMap($log) {
if (PermPermissionStore.hasPermissionDefinition(privilegeName)) {
PermPermissionStore.getPermissionDefinition(privilegeName);
return permission.validatePermission();
}
$log.warn('Permission or role ' + privilegeName + ' was not defined.');
}
使用Angularjs Decorators像这样修改$log.warn
$provide.decorator('$log', ['$delegate', function($delegate) {
$delegate.warn = angular.noop;
return $delegate;
}]);
要在生产中禁用警告,请在此配置中使用此代码
angular.module('app')
.config(['$logProvider','$provide',
function($logProvider,$provide) {
if(isProduction){ //flag to check production here
$logProvider.debugEnabled(false);
$provide.decorator('$log', ['$delegate', function($delegate) {
$delegate.warn = angular.noop;
return $delegate;
}]);
}
}
])
希望这可以帮助 :)
在javascript中重新定义console.log函数。
console.log = function() {}
我找到了解决方案(重写默认的$ log.warn函数):
$ log.warn = function(){};
来自angular-permission documentation,这是正确的方法:
app
.config(function ($permissionProvider) {
$permissionProvider.suppressUndefinedPermissionWarning(true);
})