为什么我的ng2模板中不能使用空元素标签。该部分与templateUrl中的文件相同。
<p></p> // OK
<p/> // NOK (endless "Loading...")
???
欢呼声, 克里斯
答案 0 :(得分:3)
p
标记不是html中的非关闭元素。非闭合元件例如是img
,input
或br
。如果你不关闭它 - 加载将无休止地显示,因为编译器将抛出模板解析错误:
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应用程序导入)将其视为自动关闭 语法。