标志不是在角2中的组分装入(导航栏)
导航栏组件文件:
import { Component, OnInit } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'app-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.css']
})
export class NavbarComponent implements OnInit {
private website:string
private websiteUrl:string
constructor() {
this.website = 'Rakesh'
this.websiteUrl = 'http://google.com'
}
ngOnInit() {
}
}
我加入一些HTML代码模板文件和标识不加载
我的标志代码
<div class="navbar-header">
<a class="navbar-brand" href="{{websiteUrl}}">
*<img src="./logo/rakesh.png" class="img-responsive" alt="Image">*
</a>
</div>
在控制台输出moduleId should be a string in "NavbarComponent"
。
我的标志路径:
navabar.component.ts
logo/
rakesh.png
问题可能来自moduleId should be a string in "NavbarComponent"
。
由于角CLI现在使用的WebPack,module.id中的WebPack是一个数字,而角需要一个字符串。 你应该做的是去除moduleId
的元数据。
@Component({
selector: 'app-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.css']
})
删除module.id
从@Component
。 它并不需要了,你可以找到它在@NgModule
因为角2.0。
这是的WebPack用户如何使用组件的相对路径 ,而不是module.id
。
的WebPack:加载模板和样式
的WebPack开发商必须替代moduleId
。
他们可以通过添加在运行时加载模板和样式./
在模板和年初styles / styleUrls
引用相关组件的 URL属性。
import { Component } from '@angular/core'; import '../../public/css/styles.css'; @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { }
的WebPack会做require
在幕后加载模板和样式。 阅读更多这里 。
这个回答可以帮助你,如果你有在打字稿编译错误。
如果你得到打字稿错误,只是声明变量在文件中。
declare var module: { id: string; } @Component({ moduleId: module.id, ... })