ı有两个组件,其中一个是在另一个组件内部使用的组件.

ModalComponent ModalComponent

import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';

@Component({
  selector: 'app-modal',
  templateUrl: './Modal.component.html',
  styleUrls: ['./modal.component.css'],
})
export class ModalComponent ModalComponent implements OnInit {
  @Input() title: string;
  @Input() name: string;
  @ViewChild('close') public closeModal: ElementRef;

  constructor() {}

  ngOnInit(): void {}

  close() {

this.closeNodal.nativeElement.click()
  }
}

Modal.component.html

<div
class="modal"
[id]="name"
tabindex="-1"
role="dialog"
aria-labelledby="defModalHead"
aria-hidden="true"
>
<div class="modal-backdrop in"></div>
<div class="modal-dialog">
  <div class="modal-content">
    <div class="modal-header">
   <button type="button" #close class="close" data-dismiss="modal">
        <span aria-hidden="true">&times;</span
        ><span class="sr-only">Close</span>
      </button>
      <h2 class="modal-title success">{{title}}</h2>
    </div>

    <div class="panel panel-danger">
    <ng-content></ng-content>
    </div>
    <div class="modal-footer"></div>
  </div>
</div>
</div>


HomeComponent.html

<app-modal name="personAdd" title="Person Add Form">
  <P>FORM ELEMENTS </P>

  <button>Add</button>
</app-modal>

HomeComponent.ts

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css'],
})
export class HomeComponent implements OnInit  {
  @ViewChild('ModalComponent ModalComponent') modalComponent: ModalComponent ModalComponent;

  constructor(
   
  ) {}


  ngOnInit(): void {
   
  }


  PersonMovementAdd() {
    this.modalComponent.close()

  }
 



}

当ı点击Add按钮时,ı想要到达modalComponent的Close()方法,但ı接受了未定义的错误.ı如何从Home Component到达modalComponent的Close()方法

推荐答案

try :

@ViewChild(ModalComponent) modalComponent: ModalComponent;

不是:

@ViewChild('ModalComponent') modalComponent: ModalComponent;

Typescript相关问答推荐

在TypScript手册中可以视为接口类型是什么意思?

无法从应用程序内的库导入组件NX Expo React Native

React router 6.22.3不只是在生产模式下显示,为什么?

基于键的值的打字动态类型;种类;

具有泛型类型和缺省值的键

如何以Angular 形式显示验证错误消息

在不更改类型签名的情况下在数组并集上映射文字

如何在TypeScrip中正确键入元素和事件目标?

如何将CSV/TXT文件导入到服务中?

被推断为原始类型的交集的扩充类型的交集

为什么我的导航在使用Typescript的React Native中不起作用?

Typescript 中相同类型的不同结果

从类型脚本中元组的尾部获取第n个类型

使用来自API调用的JSON数据的Angular

在Thunk中间件中输入额外参数时Redux工具包的打字脚本错误

完全在类型系统中构建的东西意味着什么?

从联合提取可调用密钥时,未知类型没有调用签名

如何使用动态生成的键和值定义对象的形状?

在Nestjs中,向模块提供抽象类无法正常工作

将 Angular 从 14 升级到 16 后出现环境变量注入问题