Angular 2:为什么没有空元素标签?

时间:2017-02-27 13:09:14

标签: javascript html angular

为什么我的ng2模板中不能使用空元素标签。该部分与templateUrl中的文件相同。

<p></p>    // OK

<p/>       // NOK (endless "Loading...")

???

欢呼声, 克里斯

2 个答案:

答案 0 :(得分:3)

p标记不是html中的非关闭元素。非闭合元件例如是imginputbr。如果你不关闭它 - 加载将无休止地显示,因为编译器将抛出模板解析错误

Uncaught Error: Template parse errors:
Only void and foreign elements can be self closed "p" ("
</p>
[ERROR ->]<p/>

答案 1 :(得分:1)

Angular2仅允许在组件模板中使用有效的HTML5。

另见https://stackoverflow.com/a/3558200/217408

  
      
  • HTML5 中,<foo />的含义[取决于元素的类型] [1]。

         
        
    • 在指定为 void的HTML元素上   元素,简单禁止结束标记。在结束时的斜线   允许使用开始标记,但没有任何意义。这只是语法糖   对于沉迷于XML的人(和语法高亮者)。
    •   
    • 在   其他HTML元素,斜杠是一个错误,但错误恢复会   导致浏览器忽略它并将标记视为常规开始标记。   这通常会导致缺少结束标记,从而导致后续操作   要成为孩子的元素而不是兄弟姐妹。

    •   
    • 外国元素   (从SVG等XML应用程序导入)将其视为自动关闭   语法。

    •   
         

    [1]:https://www.w3.org/TR/html5/syntax.html#start-tags

  •