Angular @Input 不适用于 bootstrap 组件
Angular @Input is not working with bootstrap component
我在 Angular2 class 中犯了一个错误,我没有清楚地了解 @Input。
我创建了 2 个组件 AppComponent 和 AppDetailComponent。
在 AppDetailComponent 中:
import { Component, Input } from '@angular/core';
@Component ({
selector: 'app-detail',
template: 'Hi {{datainput}}'
})
export class AppDetailComponent {
@Input()
datainput: string;
}
在 AppComponent 模板中:
<h1>
{{title}}
</h1>
<app-detail [datainput]="'test'"></app-detail>
并且在 App 模块中我犯了一个错误,将 AppDetailComponent 添加为 bootstrap 组件
import { AppComponent } from './app.component';
import { AppDetailComponent } from './app-detail.component';
@NgModule({
declarations: [
AppComponent, AppDetailComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent, AppDetailComponent]
})
export class AppModule { }
我从 bootstrap 列表中删除 AppDetailComponent 后,程序运行正常。
我不明白
当我将它用作 bootstrap 组件时,为什么 @input 不起作用?
尽管我从其他 angular 组件发送输入,Angular 是否总是忽略输入 属性?
@Inputs()
只能在组件模板中绑定。自举组件位于 index.html
任何其他组件之外,因此无法绑定到输入。
另见 Angular 2 external inputs
如果您在 index.html
中没有匹配的选择器并且不想将组件用作根组件,则不要将其添加到 bootstrap: [...]
您只需要 bootstrap AppComponent。
import { AppComponent } from './app.component';
import { AppDetailComponent } from './app-detail.component';
@NgModule({
declarations: [AppComponent, AppDetailComponent],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
bootstrap: [AppComponent]
})
export class AppModule { }
我在 Angular2 class 中犯了一个错误,我没有清楚地了解 @Input。
我创建了 2 个组件 AppComponent 和 AppDetailComponent。
在 AppDetailComponent 中:
import { Component, Input } from '@angular/core';
@Component ({
selector: 'app-detail',
template: 'Hi {{datainput}}'
})
export class AppDetailComponent {
@Input()
datainput: string;
}
在 AppComponent 模板中:
<h1>
{{title}}
</h1>
<app-detail [datainput]="'test'"></app-detail>
并且在 App 模块中我犯了一个错误,将 AppDetailComponent 添加为 bootstrap 组件
import { AppComponent } from './app.component';
import { AppDetailComponent } from './app-detail.component';
@NgModule({
declarations: [
AppComponent, AppDetailComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent, AppDetailComponent]
})
export class AppModule { }
我从 bootstrap 列表中删除 AppDetailComponent 后,程序运行正常。
我不明白 当我将它用作 bootstrap 组件时,为什么 @input 不起作用?
尽管我从其他 angular 组件发送输入,Angular 是否总是忽略输入 属性?
@Inputs()
只能在组件模板中绑定。自举组件位于 index.html
任何其他组件之外,因此无法绑定到输入。
另见 Angular 2 external inputs
如果您在 index.html
中没有匹配的选择器并且不想将组件用作根组件,则不要将其添加到 bootstrap: [...]
您只需要 bootstrap AppComponent。
import { AppComponent } from './app.component';
import { AppDetailComponent } from './app-detail.component';
@NgModule({
declarations: [AppComponent, AppDetailComponent],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
bootstrap: [AppComponent]
})
export class AppModule { }