[英]Remove helper HTML comments in Angular JS?
有没有办法阻止Angular创建“帮助”HTML注释? 例如,
<div ng-include="myTemplate"></div>
会转变成类似的东西
<!-- ngInclude: 'hurr-durr.html' -->
<div ng-include="myTemplate"></div>
我怎么阻止这个? 我查看了Angular源代码,我看到这些“帮助器”是由几乎每个指令中的无条件document.createComment生成的,所以我想通过使用一个配置设置就无法一次性阻止它们。提供者什么的。 但也许有一些没有“助手”的自定义Angular构建? 我想我可以写一些Yeoman / Grunt任务,每当我建立一个新项目时,从Angular的源中删除/评论.createComment-s。 或许你们知道一个小提琴已经做到了吗? 而且,这引出了我的最后一个问题:这些评论对于Angular的正常运作至关重要吗? 如果我删除它们,它会在我的应用程序中引起某种不稳定吗? 应该只重写CSS并“处理它”?
这些注释对于Angular如何处理某些元素至关重要。 目前不支持删除它们。 你有什么问题吗?
通过将此配置添加到角度模块,您可以删除这些角度注释的内容,以及一些角度附加到元素(例如ng-scope )的类:
myApp.config(['$compileProvider', function ($compileProvider)
{
$compileProvider.debugInfoEnabled(false);
}]);
根据angular.js文档 ,在生产中执行此操作实际上是好的,并且应该会提高性能。
来自Angular Doc:
禁用调试数据
默认情况下,AngularJS将有关绑定和作用域的信息附加到DOM节点,并将CSS类添加到数据绑定元素:作为ngBind,ngBindHtml或{{...}}插值的结果,绑定数据和CSS类ng绑定附加到相应的元素。
在编译器创建新范围的情况下,范围和ng-scope或ng-isolated-scope CSS类将附加到相应的元素。 然后可以通过element.scope()和element.isolateScope()访问这些范围引用。
像Protractor和Batarang这样的工具需要运行这些信息,但您可以在生产中禁用此信息,以便通过以下方式显着提升性能:
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}]);
如果您希望使用此信息调试应用程序,则应在浏览器中打开调试控制台,然后直接在此控制台中调用此方法:
angular.reloadWithDebugInfo();
页面应该重新加载,现在调试信息应该可用。
有关更多信息,请参阅$ compileProvider和angular.reloadWithDebugInfo上的文档页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.