Подтвердить что ты не робот

AngularJS оставляет комментарии в HTML: можно ли их удалить?

Кто-нибудь знает, можете ли вы удалить комментарии angular, которые остались в html-коде?

Например: если я использую ngRepeat и нет элементов для повторения, AngularJS оставляет это:

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

Ответ 1

Этот комментарий является результатом перехода элемента, выполняемого ngRepeat. Похоже, что происходило почти с самого начала (в терминах angular) и будет создаваться всякий раз, когда директива запрашивает переключение элементов.

Хотя вы, конечно, можете стереть его с помощью прямых HTML-манипуляций, это небезопасно. Прочитав исходный код, он предлагает, чтобы этот комментарий был необходим, чтобы продолжить компиляцию вашего HTML после удаления исходного элемента ngRepeat. Кроме того, в v1.2.0 ngRepeat добавляет больше комментариев, которые используются для определения места размещения повторяющихся элементов.

Подводя итог:

  • Angular не позволяет удалить этот
  • Вы можете сделать это вручную, но, скорее всего, сломаете angular
  • Чтобы повторить комментарии, кажется странным запросом удалить этот комментарий в первую очередь - в зависимости от ваших аргументов для этого могут быть лучшие варианты того, чего вы хотите достичь.

Ответ 2

Запустите это в своей консоли для удаления комментариев:

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

Неправильное исправление, но удобный фрагмент во время отладки.

Ответ 3

$compileProvider.debugInfoEnabled(false);

Но он может сломать некоторые плагины, у которых есть ссылки на комментарии angular.