Angular 2 个组件在其他组件内
Angular 2 component inside other component
创建角色扮演角色创建器。
我有一个 NewCharacterComponent,我正在尝试在其中实现一个 DieInputComponent。 NewCharacterComponent 是从 AppComponent 路由而来的。下面是重要的代码片段。
我 运行 遇到的问题是我没有让 DieInputComponent 加载到 NewCharacterComponent 中。当我破坏 DieInputComponent 代码时,控制台中没有抛出任何错误,所以错误很可能是我没有成功导入 DieInputComponent 但我不知道出了什么问题。
新-character.component.ts
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router-deprecated';
import { DieInputComponent } from './die-input.component';
@Component({
selector: 'core-worlds',
templateUrl: 'app/new-character.component.html',
styleUrls: ['app/new-character.component.css'],
})
export class NewCharacterComponent {
constructor() { }
}
新-character.component.html
<h2>New Character</h2>
<die-input></die-input>
死-input.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'die-input',
templateUrl: 'app/die-input.component.html',
styleUrls: ['app/die-input.component.css'],
})
export class DieInputComponent {
constructor() { }
}
死-input.component.html
<input type="number" placeholder="1d4"></input>
为了识别您的 die-input
组件,您需要通过传递给 @Component 的配置对象中的 directives
选项通知 Angular 它的存在装饰者:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router-deprecated';
import { DieInputComponent } from './die-input.component';
@Component({
selector: 'core-worlds',
templateUrl: 'app/new-character.component.html',
styleUrls: ['app/new-character.component.css'],
directives: [ DieInputComponent ] //<<<< Where the magic happens
})
export class NewCharacterComponent {
constructor() { }
}
如果您要经常在多个组件中使用该组件,您也可以在 main.ts
.
中提供它
provide(PLATFORM_DIRECTIVES, {useValue: <ComponentName>, multi: true})
这实际上会将其添加到主要指令集合中,以便像访问内置指令一样访问它。
main.ts
import { bootstrap } from '@angular/platform-browser-dynamic';
import { PLATFORM_DIRECTIVES, provide } from '@angular/core';
import { ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from '@angular/router';
import { AppComponent } from './app.component';
import { DieInputComponent} from './die-input.component';
bootstrap(AppComponent, [
ROUTER_DIRECTIVES,
ROUTER_PROVIDERS,
provide(PLATFORM_DIRECTIVES, {useValue: DieInputComponent, multi: true}),
]);
new-character.component.ts
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router-deprecated';
@Component({
selector: 'core-worlds',
templateUrl: 'app/new-character.component.html',
styleUrls: ['app/new-character.component.css'],
})
export class NewCharacterComponent {
constructor() { }
}
new-character.component.html
<h2>New Character</h2>
<die-input></die-input>
创建角色扮演角色创建器。
我有一个 NewCharacterComponent,我正在尝试在其中实现一个 DieInputComponent。 NewCharacterComponent 是从 AppComponent 路由而来的。下面是重要的代码片段。
我 运行 遇到的问题是我没有让 DieInputComponent 加载到 NewCharacterComponent 中。当我破坏 DieInputComponent 代码时,控制台中没有抛出任何错误,所以错误很可能是我没有成功导入 DieInputComponent 但我不知道出了什么问题。
新-character.component.ts
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router-deprecated';
import { DieInputComponent } from './die-input.component';
@Component({
selector: 'core-worlds',
templateUrl: 'app/new-character.component.html',
styleUrls: ['app/new-character.component.css'],
})
export class NewCharacterComponent {
constructor() { }
}
新-character.component.html
<h2>New Character</h2>
<die-input></die-input>
死-input.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'die-input',
templateUrl: 'app/die-input.component.html',
styleUrls: ['app/die-input.component.css'],
})
export class DieInputComponent {
constructor() { }
}
死-input.component.html
<input type="number" placeholder="1d4"></input>
为了识别您的 die-input
组件,您需要通过传递给 @Component 的配置对象中的 directives
选项通知 Angular 它的存在装饰者:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router-deprecated';
import { DieInputComponent } from './die-input.component';
@Component({
selector: 'core-worlds',
templateUrl: 'app/new-character.component.html',
styleUrls: ['app/new-character.component.css'],
directives: [ DieInputComponent ] //<<<< Where the magic happens
})
export class NewCharacterComponent {
constructor() { }
}
如果您要经常在多个组件中使用该组件,您也可以在 main.ts
.
provide(PLATFORM_DIRECTIVES, {useValue: <ComponentName>, multi: true})
这实际上会将其添加到主要指令集合中,以便像访问内置指令一样访问它。
main.ts
import { bootstrap } from '@angular/platform-browser-dynamic';
import { PLATFORM_DIRECTIVES, provide } from '@angular/core';
import { ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from '@angular/router';
import { AppComponent } from './app.component';
import { DieInputComponent} from './die-input.component';
bootstrap(AppComponent, [
ROUTER_DIRECTIVES,
ROUTER_PROVIDERS,
provide(PLATFORM_DIRECTIVES, {useValue: DieInputComponent, multi: true}),
]);
new-character.component.ts
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router-deprecated';
@Component({
selector: 'core-worlds',
templateUrl: 'app/new-character.component.html',
styleUrls: ['app/new-character.component.css'],
})
export class NewCharacterComponent {
constructor() { }
}
new-character.component.html
<h2>New Character</h2>
<die-input></die-input>