我需要將一些數據轉移到子元素並在其中運行函數。 我使用ViewChild
來訪問該功能。但在孩子childParam
仍未定義。Angular2。我可以同時使用ViewChild和@Input嗎?
父模板:
<my-modal #myModal [childParam]="parentParam"></my-modal>
父組件:
@ViewChild('myModal') myModal;
parentParam: any;
onSubmit(value: any){
this.parentParam = value;
this.myModal.modalShow();
}
子組件:
@Input() childParam: any;
modalShow(){
console.log(this.childParam);
}
爲什麼childParam
是不確定的?
更好的是:改變直接childParam
通過ViewChild
:
this.myModal.childParam = 'test string';
或發送數據,通過功能參數:
this.myModal.modalShow('test string');
我想'parentParam'尚未設置時'modalShow()'被調用,但很難說,因爲代碼不允許派生出可能會發生的事情。 –
我創建了plunker [鏈接](https://plnkr.co/edit/ZcZaJ0Wbu9CAobxkd2LJ?p=preview)。當我第一次點擊按鈕 - 沒有顯示任何內容時,第二次點擊 - 顯示字符串。 – MikeS