我正在学习一些angular2,但我无法找到有关此问题的信息。当我不自行关闭<input>
标记时,我会收到解析错误。这对我来说太奇怪了。此外,它似乎是一个错误,但我无法找到任何理由或讨论。
@Component({
selector: 'my-app',
template: `<h1>My First Angular App</h1>
{{greeting}}
<br/>
{{product.id}} {{product.name}} {{product.price}}
<br/>
<span [innerHtml]="product.id"></span>
<span [innerHtml]="product.name"></span>
<span [innerHtml]="product.price"></span>
<br/>
<input [(ngModel)]="product.id"/> //Here is working correctly
`
})
如果我这样做,但是这样我得到了解析错误。
@Component({
selector: 'my-app',
template: `<h1>My First Angular App</h1>
{{greeting}}
<br/>
{{product.id}} {{product.name}} {{product.price}}
<br/>
<span [innerHtml]="product.id"></span>
<span [innerHtml]="product.name"></span>
<span [innerHtml]="product.price"></span>
<br/>
<input [(ngModel)]="product.id"></input> //Here I get a Parse error
`
})
有关此错误的任何帮助信息或链接都会非常有用。谢谢
答案 0 :(得分:4)
input
标记是一个void元素,因此必须自动关闭。 Angular 2模板解析器对它非常严格。
HTML sepcification对此主题更加具体:
void元素是一个元素,其内容模型在任何情况下都不允许它拥有内容。 Void元素可以具有属性。
其他空白元素包括:area
,base
,br
,col
,command
,embed
,hr
, img
,keygen
,link
,meta
,param
,source
,track
和wbr
。