Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS在HTML中留下注释:是否可以删除它们?_Angularjs_Angularjs Directive - Fatal编程技术网

AngularJS在HTML中留下注释:是否可以删除它们?

AngularJS在HTML中留下注释:是否可以删除它们?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,有人知道你是否可以删除html代码中留下的有角度的注释吗 例如:如果我使用ngRepeat,但没有要重复的项目,AngularJS将保留以下内容: <!-- ngRepeat: post in posts --> 此注释是由ngRepeat执行的元素转换的结果。看起来它几乎是从时间的黎明开始的(从角度来说),并且将在指令要求元素转换时创建 虽然您当然可以通过直接HTML操作来消除它,但这不是一件安全的事情。通读了源代码后,它建议删除原始ngRepeat元素后,继续编译HTML时需要

有人知道你是否可以删除html代码中留下的有角度的注释吗

例如:如果我使用ngRepeat,但没有要重复的项目,AngularJS将保留以下内容:

<!-- ngRepeat: post in posts -->

此注释是由
ngRepeat
执行的元素转换的结果。看起来它几乎是从时间的黎明开始的(从角度来说),并且将在指令要求元素转换时创建

虽然您当然可以通过直接HTML操作来消除它,但这不是一件安全的事情。通读了源代码后,它建议删除原始
ngRepeat
元素后,继续编译HTML时需要使用此注释。此外,在v1.2.0中,
ngRepeat
,用于确定重复元素的放置位置

总结如下:

  • Angular不允许你移除这个
  • 您可以手动执行,但很可能会中断
  • 要重申这些评论,首先删除这些评论似乎是一个奇怪的要求——根据你这样做的理由,可能会有更好的选择来实现你的目标

在您的开发控制台中运行此命令以删除注释:

$("*").contents().filter(function(){ return this.nodeType == 8;}).remove();
这不是一个正确的修复,但在调试时很方便

$compileProvider.debugInfoEnabled(false);

但是它会破坏一些引用了angular注释的插件。

这些注释有什么问题?它们是在客户端通过JavaScript生成的。因此,它们对HTML的下载大小没有影响。你为什么关心他们?你应该希望他们在那里解决问题purposes@JBNizet当您检查DOM时,这是一种视觉污染。它也是一个查看应用程序内部工作的非常方便的窗口。我宁愿用户不能确切地看到为什么某些东西被隐藏,或者如果范围被以某种方式修改,甚至不能看到某些东西被显示出来。换句话说,如果我对某人隐藏了一个删除按钮,我甚至不想让他们知道这个按钮是可用的。所有这些信息不都应该在内存中吗?为什么Angular需要在DOM中保留/放置所有属性和注释?@TheBlackBenzKid没有侮辱,你有什么具体的、事实性的理由来反驳我说的话吗?你真的认为AngularJS在服务器上包含这些注释吗?一点也不奇怪——当使用
内联块
横向显示元素时,注释会在不应该显示的地方造成不必要的空间。“一点也不奇怪请求2”-当你想使用css'
:empty
选择器时,您的元素将永远不会因为此注释而为空inside@Cherniv不是注释而是内部的空白导致了
:empty
的问题,但它仍然是一个有效的原因“根本不是字符串请求3”-当您想要生成最终的HTML而不在类和注释中使用所有ng bind标记时“一点也不奇怪的请求4”-
:第一个孩子
:最后一个孩子
:第n个孩子
CSS选择器在
ng repeat
中基本上是无用的,因为它们也会匹配注释节点。它不会将
ng scope
作为类添加到元素中。但这些注释保留在html中。