删除Angular JS中的辅助HTML注释
Remove helper HTML comments in Angular JS?
有没有办法阻止Angular创建"helper"HTML注释?例如,
<div ng-include="myTemplate"></div>
将转变为类似的东西
<!-- ngInclude: 'hurr-durr.html' -->
<div ng-include="myTemplate"></div>
我该如何阻止这种情况?我查看了Angular源代码,发现这些"助手"是由几乎每个指令中的无条件文档.createComment生成的,所以我想没有办法通过在提供程序或其他程序上使用配置设置来同时停止它们。但也许有一些自定义的Angular构建没有"助手"?我想我可以写一些Yeoman/Grunt任务,每当我构建一个新项目时,从Angular的源代码中删除/createComment-s。或者你们知道一把小提琴已经做到了?这也引出了我的最后一个问题:这些评论在某种程度上对Angular的正常运行至关重要吗?如果我删除它们,会不会在我的应用程序中造成某种不稳定?应该重写CSS并"处理它"吗?
注释对于Angular如何处理某些元素至关重要。删除它们目前不是一个选项。你对此有什么问题?
您可以通过将以下配置添加到您的angular模块中来删除这些angular注释的内容,以及一些angular附加到元素的类(例如ng-scope):
myApp.config(['$compileProvider', function ($compileProvider)
{
$compileProvider.debugInfoEnabled(false);
}]);
根据angular.js的文档,在生产中这样做实际上很好,应该会提高性能。
来自角度文档:
禁用调试数据
默认情况下AngularJS附加有关绑定和作用域到DOM节点的信息,并添加CSS类到数据绑定元素:由于ngBind、ngBindHtml或{{…}}插值,绑定数据和CSS类ng绑定被附加到相应的要素
如果编译器创建了一个新的作用域,则作用域和ng作用域或ng隔离作用域CSS类附加到相应的元素。然后可以通过element.scope()和element.sisolateScope().
像Protractor和Batarang这样的工具需要这些信息才能运行,但是您可以在生产中禁用此功能以显著提高性能带有:
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}]);
如果您希望使用此信息调试应用程序,则应该在浏览器中打开调试控制台,然后调用此方法直接在此控制台中:
angular.reloadWithDebugInfo();
页面应该重新加载,调试信息现在应该可获得的
有关更多信息,请参阅$compileProvider和角度重新加载调试信息
- 使用JQuery或Javascript编辑HTML注释文本
- 删除Angular JS中的辅助HTML注释
- 如何呈现带尖括号的HTML注释<!--{{myModel.myProperty}}-->
- 解析 HTML 注释中的键值 json
- Ajax 输出 html 注释
- 如何为 JavaScript 生成的 HTML 注释添加事件
- QNetworkReply 不会在 HTML 注释中隐藏 JavaScript
- 在两个 HTML 注释行之间插入内容
- geochart:添加html注释到它或其他任何其他替代图表
- REGEX-在html注释模式之间插入内容
- HTML注释(如果没有javascript)
- 带有JSOUP的HTML注释
- 使用Javascript在页面上插入HTML注释
- 为什么Angularjs指令会变成html注释
- regex来提取html注释属性
- 在HTML注释之前插入DIV元素
- 如何在HTML注释中输出KnockoutJs值
- 网站如何将html注释输出到控制台
- 如何在没有唯一标识属性但有HTML注释的情况下使用jQuery选择HTML
- 在HTML注释标签中获取文本