app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'cwf',
templateUrl: './app.template.html'
})
export class AppComponent {
}
并且在app.template中有一些文字。如果在typescript文件中添加相同的文本作为模板,它可以工作。同样的事情,如果添加html然后调用html作为模板URL它不起作用。
答案 0 :(得分:57)
删除了所有提及的moduleId。 "组件相对路径"食谱强> 已删除(2017-03-13)
我们为我们添加了一个新的SystemJS插件(systemjs-angular-loader.js) 推荐的SystemJS配置。这个插件动态转换 "组分相对" templateUrl和styleUrls中的路径为"绝对值 路径"对你而言。
我们强烈建议您只编写与组件相关的路径。那 是这些文档中讨论的唯一URL形式。你不再需要 写@Component({moduleId:module.id}),你也不应该。
角度快速入门
meta: {
'./*.js': {
loader: 'systemjs-angular-loader.js'
}
}
https://github.com/angular/quickstart/blob/master/src/systemjs.config.js#L34-L38
angular-cli
changelog 1.0.0-rc.4 (2017-03-20)
与@ angular / core行为对齐,所有templateUrl和styleUrls 现在被视为相对 - 开发人员应该使用./foo.html 在所有情况下形成。
另见
默认情况下,您应指定返回应用程序根目录的完整路径。 对于应用程序根,绝对。
根据您的情况,可能是:
@Component({
selector: 'cwf',
templateUrl: 'app/app.template.html' // or src
})
export class AppComponent {}
如果要指定相对于其组件类文件的模板和样式URL,则应将moduleId
属性设置为组件的装饰器:
@Component({
moduleId: module.id
selector: 'cwf',
templateUrl: './app.template.html'
})
export class AppComponent {}
如果您使用SystemJS,那么它应该是__moduleName
变量而不是module.id
变量:
@Component({
moduleId: __moduleName,
selector: 'cwf',
templateUrl: './app.template.html'
})
export class AppComponent {}
另见详情:
答案 1 :(得分:4)
,
就像这样为我工作
viewBox
答案 2 :(得分:0)
在@component声明中添加moduleId: module.id
对我来说很有用。
位于' app / login / login.component.ts'中的组件示例:
@Component({
moduleId: module.id,
templateUrl: './login.component.html'
答案 3 :(得分:0)
只需在该特定组件打样文件中添加module.ts即可解决此错误。
我的组件文件是代码
@Component({ moduleId:module.id,< ---在组件文件中添加此行 选择器:' items', templateUrl:' ./ items.component.html' })
答案 4 :(得分:0)
我的回答可能有所帮助。我的组件看起来像这样:
@Component({
"selector": "complex-chat-message",
"templateUrl": "./complex-chat-message.html"
})
我手工编写了这个组件,并且作为编写jsons的习惯,我最终在selector
和templateUrl
中使用了双引号,我得到了同样的问题。
删除双引号后,问题就消失了。