徽标未在组件(Navbar)中的Angular 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
答案 0 :(得分:2)
问题可能来自moduleId should be a string in "NavbarComponent"
。
由于Angular CLI现在使用Webpack,因此Webpack中的module.id是一个数字,而Angular需要一个字符串。您应该删除moduleId
元数据。
@Component({
selector: 'app-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.css']
})
答案 1 :(得分:1)
从module.id
移除@Component
。它不再需要了,你可以在@NgModule
中找到它,因为Angular 2.0。
这是webpack用户使用 component relative paths而不是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
加载模板 和风格。阅读更多here。
This回答可以帮到你。
如果您收到打字稿错误,只需在文件中声明该变量即可。
declare var module: { id: string; } @Component({ moduleId: module.id, ... })