您可以使用@Input()
屬性。
<my-component [state]="'joining'"></my-component>
export class AppComponent {
@Input() state: string;
constructor() {
console.log(this.state) // => undefined
}
ngOnInit() {
console.log(this.state) // => 'joining'
}
}
構造一般應只用於DI ...
但是,如果你真的需要它,你可以創建注射變量(plunker):
let REALLY_IMPORTANT_STRING = new OpaqueToken('REALLY_IMPORTANT_STRING');
bootstrap(AppComponent, [provide(REALLY_IMPORTANT_STRING, { useValue: '!' })])
export class AppComponent {
constructor(@Inject(REALLY_IMPORTANT_STRING) public state: REALLY_IMPORTANT_STRING) {
console.log(this.state) // => !
}
}
簡單的選項是剛剛成立類別屬性:
export class AppComponent {
private state:string = 'joining';
constructor() {
console.log(this.state) // => joining
}
}
正如@Mark指出的,另一個o ption是使用服務:
export class AppService {
public state:string = 'joining';
}
export class AppComponent {
constructor(private service: AppService) {
console.log(this.service.state) // => joining
}
}
呀,好像你不應該處理組件就像一個普通類 –
那麼它不是一個普通類(:這是一類特殊的,可以做一些規律性的東西:P – Sasxa
嘿耶,我覺得像傳遞一個字符串應該是可能的,雖然。我不應該在我的模板中初始化它 –