Мне нужно перенести некоторые данные в дочерний элемент и запустить в нем функцию. Я использую 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() 'называется, но трудно сказать, потому что код не позволяет выводить то, что может идти. –
Я создаю плункер [link] (https://plnkr.co/edit/ZcZaJ0Wbu9CAobxkd2LJ?p=preview). Когда я впервые нажал на кнопку - ничего не показывал, второй раз щелкнул - строка была показана. – MikeS