给出一个模板,例如src/app/x.component.html
:
<em>Hello</em>
和组件src/app/x.component.ts
:
import {Component} from '@angular/core'
@Component({
selector: 'x-y',
templateUrl: './x.component.html'
})
export class XComponent {}
该组件有效:显示 Hello 。
现在,用纯JS编写相同的代码,即。 src/app/x.component.js
:
import {Component} from '@angular/core'
export class XComponent {}
XComponent.annotations = [
new Component({
selector: 'x-y',
templateUrl: './x.component.html'
})
]
将导致错误
GET /x.component.html 404 (Not Found)
Failed to load x.component.html
。
因此,出于某种原因,@angular/cli
似乎在/
中寻找模板。
但是 ,使用嵌入式模板而不是外部模板,例如:
...
new Component({
selector: 'x-y',
template: `<em>Hello</em>`
})
...
有效!
问题:我做错了什么?如何使templateUrl
也可以用于普通的JavaScript组件?
我正在使用Angular 7.2.13和Angular CLI 7.3.8