Javascript 删除Angular JS中的帮助器HTML注释?
有没有办法防止Angular创建“helper”HTML注释?比如说,Javascript 删除Angular JS中的帮助器HTML注释?,javascript,angularjs,Javascript,Angularjs,有没有办法防止Angular创建“helper”HTML注释?比如说, <div ng-include="myTemplate"></div> 将转变为类似 <!-- ngInclude: 'hurr-durr.html' --> <div ng-include="myTemplate"></div> 我该怎么阻止这一切?我查看了Angular源代码,我看到这些“助手”是由几乎每个指令中的一个无条件document.crea
<div ng-include="myTemplate"></div>
将转变为类似
<!-- ngInclude: 'hurr-durr.html' -->
<div ng-include="myTemplate"></div>
我该怎么阻止这一切?我查看了Angular源代码,我看到这些“助手”是由几乎每个指令中的一个无条件document.createComment生成的,所以我想没有办法通过在提供程序上使用配置设置或其他方法一次停止它们。
但也许有一些没有“助手”的自定义角度构建?
我想我可以编写一些Yeoman/Grunt任务,以便在构建新项目时从Angular的源代码中删除/注释.createComment-s。或者你们知道有把小提琴已经做到了?这也引出了我的最后一个问题:
这些评论对天使的正常功能至关重要吗?如果我删除它们,会不会在我的应用程序中造成某种不稳定?a是否应该重写CSS并“处理它”?注释对于Angular如何处理某些元素至关重要。删除它们目前不是一个选项。有什么问题吗?通过将此配置添加到angular模块,您可以删除这些angular注释的内容,以及angular附加到元素(例如ng scope)的某些类:
myApp.config(['$compileProvider', function ($compileProvider)
{
$compileProvider.debugInfoEnabled(false);
}]);
根据,在生产中这样做实际上是很好的,应该会提高性能。来自Angular Doc:
默认情况下禁用调试数据AngularJS附加
有关绑定和作用域到DOM节点的信息,并添加CSS
类到数据绑定元素:
作为ngBind、ngBindHtml或{{…}插值的结果,绑定
数据和CSS类ng绑定附加到相应的
元素
如果编译器创建了新的作用域,则作用域和
ng作用域或ng隔离作用域CSS类附加到
对应元素。然后可以通过以下方式访问这些范围引用:
element.scope()和element.isolateScope()
量角器和巴塔朗等工具需要这些信息才能运行,但是
您可以在生产中禁用此功能,以显著提高性能
与:
如果希望使用此信息调试应用程序,则
应该在浏览器中打开调试控制台,然后调用此方法
直接在此控制台中:
页面应该重新加载,调试信息现在应该是
可用
有关更多信息,请参阅$compileProvider和上的文档页面
angular.reloadWithDebugInfo
我的团队不久前就停止使用HTML注释(用PHP注释代替),因为有些浏览器可能会将它们匹配为:first child、:last child、:nth child等等。特别是IE。我很感兴趣,如何依赖评论?你有例子吗?@Flek我知道你可以使用注释指令,即代替,但我不确定从实际属性指令生成的注释。生成的注释用于查找ng if替换节点、ng重复元素等。如果没有它们,当条件为真(从假返回)时,ng如何知道在何处重新插入自身?注释在元素之间添加了一个未被删除的空格可能是
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}]);
angular.reloadWithDebugInfo();