2013-11-23 25 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

相關問題