首页 > 解决方案 > 如何使用 EventEmitter 将函数传递给子组件?

问题描述

我有一个父子组件设置,其中子元素上的(点击)事件,我需要调用父方法。我正在尝试 eventEmmiter 但收到此错误:

错误:com.tns.NativeScriptException:找不到模块:“事件”,相对于:app/tns_modules/

代码片段

Parent.component.html

<app-header (thisEvent)="navigate($event)"></app-header>

父组件.ts

import { Component } from "@angular/core";
@Component({
  moduleId: module.id,
  selector: "app-main",
  templateUrl: "./parent.component.html",
  styleUrls: ["./parent.component.css"]
})
export class ParentComponent {
naviagte(args){
this.router.navigate(["/"]);
}
}

Child.component.html:

<Button text="Tap" class="btn btn-primary" (tap)="onTap($event)"></label>

Child.component.ts:

import { Component, Input, Output } from "@angular/core";
import { EventEmitter } from "events";
@Component({
  selector: "app-header",
  moduleId: module.id,
  templateUrl: "./child.component.html",
  styleUrls: ["./child.component.css"]
})
export class ChildComponent {
  @Output()
  thisEvent= new EventEmitter();
  navigate(args) {
    this.thisEvent.emit(null);
  }
}

标签: angularnativescript

解决方案


应该从不EventEmitter从导入。@angular/coreevents

import { Component, Input, Output, EventEmitter } from "@angular/core";

推荐阅读