【发布时间】:2019-04-13 18:31:44
【问题描述】:
这是我学习 Angular 的第一天,我遇到了一条非常不直观的错误消息,上面写着:
未捕获的错误:模板解析错误:意外的结束标记“p”。它 当标签已经被另一个标签关闭时可能会发生。为了 更多信息见 https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags(" 号码 {{ i + 1 }}: {{ phoneNumber }} [ERROR ->]
"): ng:///AppModule/AddressCardComponent.html@5:0
错误是在如下所示的有效 html 模板上引发的:
<p>Phones:</p>
<p *ngFor="let phoneNumber of user.phone; index as i">
<h3>
Number {{ i + 1 }}: {{ phoneNumber }}
</h3>
</p>
在组件本身中它看起来像这样:
@Component({
selector: 'app-address-card',
templateUrl: './address-card.component.html',
styleUrls: ['./address-card.component.scss']
})
export class AddressCardComponent implements OnInit {
user: any;
constructor() {
this.user = {
name: 'Foo Bar',
title: 'Software Developer',
address: '1234 Main St., State, City 610010',
phone: [
'123-123-1234',
'456-546-4574'
]
}
}
ngOnInit() {
}
}
很酷的是,如果我将内部的h3 标记更改为span 或a,它会按预期完美运行,而当内部标记为p、h3、h2 时,h1,div 等它只是因同样的错误而中断。
它只是不喜欢某些类型的标签,lol
不管怎样,
我在这里做错了吗?如果是这样,我应该如何更正模板?我错过了什么?
在开发 Angular 应用程序时是否会出现很多不直观的错误消息?
PS:如果有什么不同,我正在使用 Angular v7.0.5
【问题讨论】:
-
阅读this。
p标签内不能有h1标签 -
@user184994 好吧,浏览器会渲染这样的东西,即使它不遵循标准。那么另一个问题:角度真的需要告诉我要使用什么标签吗?而且,还有这么模糊的错误信息……感觉有点奇怪
-
我认为它并没有那么模糊。它会准确地告诉您是哪个标签导致了错误,以及一个指向 w3 规范的链接,该链接会告诉您原因。浏览器会在到达您的
h1后立即自动插入结束p标签,因此您现在拥有没有匹配开始标签的原始结束标签 -
好的,我明白了。谢谢大家,这个话题对我来说是新的。我想我应该花一些时间来适应 Angular
标签: javascript html angular angular6 angular7