gpt4 book ai didi

javascript - 有效模板上非常不直观的 "Unexpected closing tag"错误

转载 作者:太空狗 更新时间:2023-10-29 17:49:12 25 4
gpt4 key购买 nike

这是我学习 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 标记更改为 spana,它会按预期完美运行,而当内部标签是p, h3, h2, h1, div 等等只是因同样的错误而中断。

它只是不喜欢某些类型的标签,哈哈


无论如何,

  1. 我是不是做错了什么?如果是这样,我应该如何更正模板?我想念什么?

  2. 在开发 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com