角p元素作为模板内的根元素

时间:2018-08-29 14:14:55

标签: html angular custom-element angular-template

我正在尝试遵循Angular的入门教程“ Tour Of Heroes”。 在“ Show The Hero Object”部分中,应该从

更改heroes.component.html模板的内容。

{{hero}}

<h2>{{hero.name}} Details</h2>
<div><span>id: </span>{{hero.id}}</div>
<div><span>name: </span>{{hero.name}}</div>

上面的代码对我有用,但是最初我做了些许改动,模板内容被段落HTML元素

包围,如下所示:

<p>{{hero}}</p>

问题是,尽管上面的方法正常工作,但是当hero是一个简单的String对象时,将模板更改为以下内容不会产生任何输出。即检查源代码,我只是看到空的app-root元素。

<p>
    <h2>{{hero.name}} Details</h2>
    <div><span>id: </span>{{hero.id}}</div>
    <div><span>name: </span>{{hero.name}}</div>
</p>

可能是什么问题? UM,最后我发现了错误,但可以公开评论。谢谢。

1 个答案:

答案 0 :(得分:1)

UM,好的,我只是将其发布并保留以备将来参考。与Angular无关。从来没有意识到我没有被允许这样做。

我忽略的javascript控制台中有一个错误。它是这样的:

  

未捕获的错误:模板解析错误:   意外的结束标签“ p”。当标签已经被另一个标签关闭时,可能会发生这种情况。有关更多信息,请参见https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags

搜索我发现是Angular的,实际上整个HTML规范不喜欢带有非文本子元素的P标签-据我了解,它是一种应用于立即格式化的标签,例如B,而不是用于构建结构或布局。关于此问题here,有广泛的讨论。