javascript - 将事件从子组件传递到父组件 Angular 5

标签 javascript angular typescript

我有一个名为 program-page 的父组件,它有一个名为 program-item 的子组件,现在我在 program-item< 上有一个按钮 我想让那个按钮做的是调用父组件上的一个函数。我不确定我会怎么做这样的事情。

program-page.component.html

<app-program-header></app-program-header>
<app-week-display></app-week-display>
<app-program-item [item]="programItem"></app-program-item>

program-page.component.ts

someFunction()

program-item.component.html

<button>click me</button> // button I want to be able to call event on parent component

我知道我可以使用事件发射器,但我以前从未使用过,也不确定在这种情况下我将如何实现它,我还没有看到任何示例,其中单击子组件上的按钮会调用父组件上的函数

如有任何帮助,我们将不胜感激!

最佳答案

Angular有Input和Output,可以分别用来给子组件提供数据和给父组件发送事件。

你可以这样做。

program-page.component.html

<app-program-header></app-program-header>
<app-week-display></app-week-display>
<app-program-item [item]="programItem" (someEvent)="someFunction($event)"></app-program-item>

program-item.component.ts

import { EventEmitter } from '@angular/core';
....
@Output() someEvent = new EventEmitter();

program-item.component.html

<button (click)="someEvent.emit('data')">click me</button>

输入和输出的原始用法 Stackblitz example

关于javascript - 将事件从子组件传递到父组件 Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897465/

相关文章:

java - 如何从服务器触发JSP页面刷新?

javascript - jQuery:创建一个圆形 slider

Javascript 对字符串数组的重要性进行排序

javascript - 使用滚动折叠一个 div 直到某个点

javascript - 为什么表单提交时<button> "clicked"?

javascript - Angular CLI 类文件导入必须大写——为什么?

angular - 排除破坏 Angular Universal 的组件

html - 如何使用 Angular Material 创建粘性 header ?

带有 gulp-typescript 的 Angular 2 提前编译器

javascript - Redux 操作 typescript 返回类型不起作用