在AngularJS指令模板的开头注释

时间:2015-04-03 20:31:09

标签: javascript angularjs

似乎AngularJS在HTML模板的第一行处理注释时遇到问题。

Console给出了以下错误:

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指令的第一行使用注释来避免这个问题。

有人知道为什么或只是一个错误吗?

1 个答案:

答案 0 :(得分:2)

该链接解释了为什么这是一个错误:

  

当使用template(或templateUrl)声明指令并替换mode on时,模板必须只有一个根元素。

注释和文本节点仍然是元素,即使它们不是标记。因此,您无法做到这一点:

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

Angular仍然可以使用注释的指令。

您可以不将replace用作指令定义的一部分,也可以只在根标记内移动注释。我不认为这太糟糕了:

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