2015-04-03 3 views
0

Похоже, что у AngularJS есть проблемы с обработкой комментариев в первой строке HTML-шаблона.Комментарий к началу шаблона директивы AngularJS

Консоль дает мне следующую ошибку:

Error: [$compile:tplrt] http://errors.angularjs.org/1.3.15/$compile/tplrt?p0=deviceItem&p1=deviceItem.html 
    at Error (native) 
    at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js:6:417 
    at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js:65:275 
    at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js:112:113 

Так что не использовать комментарий в первой строке с AngularJS директивы, чтобы избежать этой проблемы.

Кто-нибудь знает, почему, или это просто ошибка?

ответ

2

Ссылка объясняет, почему это ошибка:

When a directive is declared with template (or templateUrl) and replace mode on, the template must have exactly one root element.

Комментарии и текстовые узлы все еще элементы, даже если они не являются теги. Таким образом, у вас не может быть этого:

<!-- comment node --> 
non-comment node 

Угловые могут по-прежнему использовать директивы, которые также являются комментариями.

Вы можете либо не использовать replace как часть определения директивы, либо просто переместить комментарий внутри корневого тега. Я не думаю, что это так плохо:

<div> 
    <!-- directive comments --> 
    other things 
</div> 
+0

Использование замены в определении директивы не помогает, но перемещение помогает. Благодарим вас за просвещение со ссылкой в ​​сообщении об ошибке. Я не понимал, что это объясняет проблему. – dec

Смежные вопросы