Я использую угловой 6 для реализации нижеприведенного примера. Когда это сделать в конечном итоге с неопределенной ошибкой при использовании @ViewChild в родительском. Вот фрагмент кода,
Базовый компонент
@Component({
selector: 'comp1',
styleUrls: ['landing.component.scss'],
templateUrl: 'bcomponent.html'
})
export class BaseComponent implements OnInit {
@ViewChild(QComponent) public questionModal: QComponent;
public openQModal(): void {
setTimeout(function() {
this.questionModal.openModal();
}.bind(this), 200);
}
}
дочерний компонент
@Component({
selector: 'comp2',
styleUrls: ['ccomponent.scss'],
templateUrl: 'ccomponent.html'
})
export class ChildComponent extends BaseComponent implements OnInit {
constructor({super ();})
}
Когда я вызываю openQModal () из bcomponent.html, он работает нормально, но когда я вызываю тот же метод из ccomponent.html, он завершается с ошибкой «undefined».
bcomponent.html
<div class="fd-message-block--buttons-container">
<button #questionnaireButton
id="questionnaireButton"
class="fd-button fd-button_orange fd-button_16"
(click)="openQModal()"
[innerHtml]="landing.buttonText | safeHtml"></button>
</div>
ccomponent.html * +1014 *
<a id="btn-back" (click)="openQModal()">Click Here!!</a>