2013-11-23 24 views
50

有谁知道,如果你可以删除留在HTML代码中的角色注释?AngularJS在HTML中留言:是否可以删除它们?

例如:如果我使用ngRepeat,也没有项目重复过,AngularJS离开这个:

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

这些评论有什么问题?它们在客户端由角度JavaScript生成。所以它们对HTML的下载大小没有影响。你为什么关心他们? –

+1

应该希望他们出于故障排除的目的 – charlietfl

+30

@JBNizet当您检查DOM时,它会造成视觉污染。 –

回答

34

这个评论是ngRepeat进行元素 transclusion的结果。几乎从时间的凌晨(以角度来看),它看起来像是been happening,并且只要指令要求进行元素转换就会被创建。

虽然你肯定可以用直接的HTML操作来清除它,但这不是一件安全的事情。阅读源代码后,它表明,在原始ngRepeat元素被删除后,需要此评论才能继续编译您的HTML。另外,在v1.2.0中,ngRepeatadds more comments用于确定重复元素的放置位置。

总结:

  • 角不会让你删除此
  • 你可以做手工,但你最有可能突破的角度
  • 要重申的意见,这似乎是一个奇怪的要求首先删除此评论 - 根据您对此的推理,可能会有更好的选择来实现您的目标。在调试

    $("*").contents().filter(function(){ return this.nodeType == 8;}).remove(); 
    

    不是一个适当的修正,但方便的片断:

+42

完全不是一个奇怪的请求 - 当使用'inline-block'横向显示元素时,注释会导致不需要显示的空间。 –

+0

我有一个奇怪的问题,拖拽后删除元素,并删除ng重复指令中的注释创建行后解决的问题: clone [clone.length ++] = document.createComment('end ngRepeat:'+ expression +''); – shox

+20

“完全不是一个奇怪的请求2” - 当你想使用css':empty'选择器时,你的元素将永远不会是空的,因为这个评论在 – Cherniv

7

运行这在你的开发者控制台核弹攻击的评论。

3
$compileProvider.debugInfoEnabled(false); 

但它可以打破一些插件的角色评论引用。

+0

它不会将'ng-scope'作为类添加到元素中,但是这些注释保留在html中。https://code.angularjs.org/1.5.5/docs/guide/production – Arashsoft

相关问题