/ / AngularJS pozostawia komentarze w formacie HTML: czy można je usunąć? - angularjs, dyrektywa angularjs

AngularJS zostawia komentarze w HTML: czy można je usunąć? - angularjs, angularjs-directive

Czy ktoś wie, czy można usunąć komentarze kątowe pozostawione w kodzie HTML?

Na przykład: Jeśli użyję ngRepeat i nie ma żadnych elementów do powtórzenia, AngularJS pozostawi to:

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

Odpowiedzi:

34 dla odpowiedzi nr 1

Ten komentarz jest efektem element transkluzja wykonana przez ngRepeat. Wygląda na to, że tak się działo niemal od zarania dziejów (w ujęciu kątowym) i będzie tworzony za każdym razem, gdy dyrektywa będzie wymagać transkluzji elementów.

Chociaż z pewnością można to wymazać bezpośrednioManipulowanie HTML-em nie jest rzeczą bezpieczną. Po przeczytaniu źródła sugerujemy, że ten komentarz jest potrzebny, aby kontynuować kompilację kodu HTML, gdy oryginał ngRepeat element zostanie usunięty. Dodatkowo w wersji 1.2.0 ngRepeat dodaje więcej komentarzy które służą do określenia miejsca umieszczenia powtarzających się elementów.

Podsumować:

  • Angular nie pozwala ci tego usunąć
  • Możesz to zrobić ręcznie, ale najprawdopodobniej złamałbyś kąt
  • Powtarzając komentarze, wydaje się dziwną prośbą o usunięcie tego komentarza w pierwszej kolejności - w zależności od powodów, dla których to robisz, mogą istnieć lepsze opcje osiągnięcia tego, co chcesz.

7 dla odpowiedzi nr 2

Uruchom to w konsoli deweloperskiej, aby zaatakować komentarze:

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

Nie jest to właściwa poprawka, ale przydatny fragment podczas debugowania.


3 dla odpowiedzi nr 3
$compileProvider.debugInfoEnabled(false);

Ale może zepsuć niektóre wtyczki, które zawierają odniesienia do komentarzy kątowych.