Angular 2 个组件未在 index.html 中显示
Angular 2 Component Not Displaying in index.html
我对 Angular 2 还很陌生,所以请多多包涵。
我正在尝试让一个新组件出现在 index.html 页面中。
该文件集来自 GitHub 的基本快速入门文件。
我这样创建了一个新组件:
import { Component } from '@angular/core';
@Component({
selector: 'app-user-item',
template: `<h1>It works!</h1>`,
})
export class UserItemComponent {
}
我已经在 HTML 中这样声明了选择器标签:
<!DOCTYPE html>
<html>
<head>
<title>Angular QuickStart</title>
<base href="/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('main.js').catch(function(err){ console.error(err); });
</script>
</head>
<body>
<my-app>Loading AppComponent content here ...</my-app>
<app-user-item>loading another component</app-user-item>
</body>
</html>
我什至尝试将导入添加到 app.module.ts 的顶部,并将组件名称添加到 app.module.ts 中的声明数组。但还是一无所获。
我检查了我的文件结构,有一个js版本的user-item.component.ts。但是我看不到变化。
如有任何帮助,我们将不胜感激。
干杯
用户-item.component.ts:
import { Component } from '@angular/core';
@Component ({
selector: 'app-user-item',
template: `<p>child item</p>`
)}
export class UserItemComponent {
constructor(){ }
}
user.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-user',
template: ` <h2> My User Item </h2>
<app-user-item></app-user-item>`
})
export class UserComponent {
constructor() {}
}
user.module.ts:
import { NgModule } from '@angular/core';
import { UserComponent } from './user-component';
import { UserItemComponent } from './user-item-component';
@NgModule({
declarations: [
UserComponent,
UserItemComponent
]
})
export class UserModule {}
我强烈建议您使用 angular-cli (https://github.com/angular/angular-cli)。并在 angular 页面上完成教程。
但是,对于您的用例,上面的代码应该足够了并且可以工作。
通常您在与父组件相同的模块中声明您的子组件。
此模块由 app.module(根模块)
导入
看Angular的Master-Detail组件教程
https://angular.io/docs/ts/latest/tutorial/toh-pt2.html
我遇到了完全相同的问题。在您的 app.module.ts 文件中,确保将您的组件包含在您的 bootstrap 声明中。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { UserItemComponent } from './UserItem.component';
@NgModule({
declarations : [
AppComponent,
UserItemComponent
],
imports: [
BrowserModule
],
bootstrap: [
AppComponent,
UserItemComponent
],
providers: [],
})
export class AppModule { }
在我的例子中,app.component.ts
文件中定义的 Selector
与 index.html
不匹配
我对 Angular 2 还很陌生,所以请多多包涵。 我正在尝试让一个新组件出现在 index.html 页面中。 该文件集来自 GitHub 的基本快速入门文件。 我这样创建了一个新组件:
import { Component } from '@angular/core';
@Component({
selector: 'app-user-item',
template: `<h1>It works!</h1>`,
})
export class UserItemComponent {
}
我已经在 HTML 中这样声明了选择器标签:
<!DOCTYPE html>
<html>
<head>
<title>Angular QuickStart</title>
<base href="/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('main.js').catch(function(err){ console.error(err); });
</script>
</head>
<body>
<my-app>Loading AppComponent content here ...</my-app>
<app-user-item>loading another component</app-user-item>
</body>
</html>
我什至尝试将导入添加到 app.module.ts 的顶部,并将组件名称添加到 app.module.ts 中的声明数组。但还是一无所获。 我检查了我的文件结构,有一个js版本的user-item.component.ts。但是我看不到变化。
如有任何帮助,我们将不胜感激。
干杯
用户-item.component.ts:
import { Component } from '@angular/core';
@Component ({
selector: 'app-user-item',
template: `<p>child item</p>`
)}
export class UserItemComponent {
constructor(){ }
}
user.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-user',
template: ` <h2> My User Item </h2>
<app-user-item></app-user-item>`
})
export class UserComponent {
constructor() {}
}
user.module.ts:
import { NgModule } from '@angular/core';
import { UserComponent } from './user-component';
import { UserItemComponent } from './user-item-component';
@NgModule({
declarations: [
UserComponent,
UserItemComponent
]
})
export class UserModule {}
我强烈建议您使用 angular-cli (https://github.com/angular/angular-cli)。并在 angular 页面上完成教程。 但是,对于您的用例,上面的代码应该足够了并且可以工作。 通常您在与父组件相同的模块中声明您的子组件。 此模块由 app.module(根模块)
导入看Angular的Master-Detail组件教程 https://angular.io/docs/ts/latest/tutorial/toh-pt2.html
我遇到了完全相同的问题。在您的 app.module.ts 文件中,确保将您的组件包含在您的 bootstrap 声明中。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { UserItemComponent } from './UserItem.component';
@NgModule({
declarations : [
AppComponent,
UserItemComponent
],
imports: [
BrowserModule
],
bootstrap: [
AppComponent,
UserItemComponent
],
providers: [],
})
export class AppModule { }
在我的例子中,app.component.ts
文件中定义的 Selector
与 index.html