- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我学习 angular 的第一天,我遇到了一条非常不直观的错误消息,上面写着:
Uncaught Error: Template parse errors: Unexpected closing tag "p". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags (" Number {{ 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
等等只是因同样的错误而中断。
它只是不喜欢某些类型的标签,哈哈
无论如何,
我是不是做错了什么?如果是这样,我应该如何更正模板?我想念什么?
在开发 Angular 应用程序时是否会出现很多不直观的错误消息?
PS:如果有任何不同,我正在使用 Angular v7.0.5
最佳答案
要验证 HTML 5,标题标签不能位于段落标签内。我怀疑如果替换 <p *ngFor="let phoneNumber of user.phone; index as i">
,您的代码也能正常运行与 <div *ngFor="let phoneNumber of user.phone; index as i">
我发现 Angular 通常会真正迫使您正确地做事。在他们看来,有一个标准,而且它的存在是有原因的。因此,即使从技术上讲代码可以运行,其他地方也会产生潜在的副作用。而那些,那些可能是一个完整的 PITA 找到。所以,他们从根本上迫使你走上正确的道路。这可能是 Angular 学习曲线陡峭的一个重要原因。它质疑你认为你已经知道的一切。
一些 Angular 错误消息可能有点……模糊。但我认为我在一开始就遇到过 JS 错误。
关于javascript - 有效模板上非常不直观的 "Unexpected closing tag"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53238411/
我是一名优秀的程序员,十分优秀!