从 Angular 中的另一个组件调用函数

如何解决从 Angular 中的另一个组件调用函数

也许我的问题很简单,但我无法解决我有两个组件。第一;

form.component.ts

import { Component,Injectable } from '@angular/core'

@Injectable({
  providedIn: 'root',})

@Component({
  selector: 'cui-nt-form',templateUrl: './form.component.html',styleUrls: ['./form.component.scss'],})
export class NtFormComponent {

  showForm: boolean = false

  constructor() {
    document.addEventListener('keydown',this.handleKeyDownForm.bind(this),false)
  }

  public setVisibleForm() {
    console.log('Form Showing');
    this.showForm = true 
  }

  setHiddenForm() {
    this.showForm = false
  }

  handleKeyDownForm(event: any) {
    if (this.showForm) {
      const key = event.keyCode.toString()
      if (key === '27') {
        this.setHiddenForm()
      }
    }
  }
}

form.component.html

<div class="d-inline-block mr-4">
  <!-- <button nz-button (click)="setVisibleForm()" nzType="primary">Primary Buttonn</button> -->
  <div class="liveForm" [ngClass]="{'liveformVisible': showForm}">
    <button class="close" type="button" (click)="setHiddenForm()">
      <i class="icmn-cross"></i>
    </button>
    <h5>test form</h5>
  </div>
</div>

form.component.scss

....
.liveformVisible {
  opacity: 1;
  visibility: visible;
}
....

当我单独放置这个组件并触发按钮时,它工作正常。但是,当我在另一个组件中调用它时,该函数可以工作但没有显示。我调用函数的另一个组件是 ;

dynamic.component.ts

import { Component,NgModule,OnInit,ViewChild } from '@angular/core'
import { ActivatedRoute } from '@angular/router'
import { NtFormComponent } from 'src/app/components/layout/Forms/form.component'

@Component({
  selector: 'kit-antd-table-dynamic',templateUrl: './dynamic.component.html',styles: [
    `
      .components-table-demo-control-bar {
        margin-bottom: 12px;
      }

      .nz-form-item {
        margin-right: 16px;
        margin-bottom: 8px;
      }

    `,],})
export class KitAntdTableDynamicComponent implements OnInit {
  showForm: boolean = false

  constructor(
    private route: ActivatedRoute,private formComponent:NtFormComponent
     ){}
 ....    
  formVisible(){
    this.formComponent.setVisibleForm();
  }
 ....
} 

dynamic.component.html

<a (click)="formVisible()">Action</a>

我正在使用console.log('表单显示')来测试该函数在form.component.ts 中是否有效。这有效,但表格不可见。我看不到的问题是什么?谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?