Angular 1.3引入了一种新的debugInfoEnabled()
方法,如果在application config function中使用false
进行调用,可以提高性能:
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}]);
此外,Angular 1.3放弃了IE8支持。这对我来说是一个问题,我的应用程序必须在IE8上运行。因此,我无法升级到角度1.3并且必须使用1.2。
有没有办法用angular 1.2实现相同的功能?
特别是debugInfoEnabled()
所做的至少一部分:
ng-scope
/ ng-isolated-scope
CSS类作为一种可能的选择,我可以分叉angularjs存储库并将该功能反向回1.2。然后,使用fork维护来自上游的更新。
不胜感激。
答案 0 :(得分:5)
使用基础DOM setAttribute
方法来防止默认行为。我在另一个答案中编辑了那个傻瓜:
http://plnkr.co/edit/cMar0d9IbalFxDA6AU3e?p=preview
执行以下操作:
setAttribute
原型方法ng
调试属性ng
调试属性按如下方式使用:
/* Clone the original */
HTMLElement.prototype.ngSetAttribute = HTMLElement.prototype.setAttribute;
/* Override the API */
HTMLElement.prototype.setAttribute = function(foo, bar) {
/* Define ng attributes */
var nglist = {"ng-binding": true, "ng-scope":true,"ng-class":true,"ng-isolated-scope":true};
console.log([foo,bar]);
/* Block ng attributes; otherwise call the clone */
if (nglist[foo])
return false;
else if (JSON.stringify(nglist).match(foo) )
return false;
else
return this.ngSetAttribute(foo, bar);
}
将IE HTMLElement
替换为Element
。
<强>参考强>
答案 1 :(得分:1)
您可以尝试在角度配置中提及$logProvider.debugEnabled(true);
来禁用它。
为了实现debugEnabled
设置,您需要确保在使用$log
提供程序时进行日志。
示例代码
var app = angular.module('myApp', []);
app.config(function($logProvider){
$logProvider.debugEnabled(false);
});
app.controller('MainCtrl', function($scope, $log ) {
$scope.name = 'Hello World!';
$scope.testModel = {name: "test"};
//console.log('This will show log even if debugging is disable');
$log.debug('TEST Log');
});
这是 Fiddle
希望这会对你有帮助。