Javascript 在父组件中单击按钮从子组件执行功能:Angular2

Javascript 在父组件中单击按钮从子组件执行功能:Angular2,javascript,angular,events,typescript,components,Javascript,Angular,Events,Typescript,Components,我在子组件中具有以下功能: reload() { clearInterval(this.points); this.initiateInterval(); this.redrawImages(); } 它在窗口上重画了一些图像。调整事件大小 但是在父组件中,我有一个按钮menu burger,它缩小了窗口。我想将子组件中的reload()函数绑定到此按钮 这是父组件中的“我的”按钮: reload() { clearInterval(this.points);

我在子组件中具有以下功能:

reload() {
    clearInterval(this.points);
    this.initiateInterval();
    this.redrawImages();
}
它在
窗口上重画了一些图像。调整事件大小

但是在父组件中,我有一个按钮
menu burger
,它缩小了窗口。我想将子组件中的
reload()
函数绑定到此按钮

这是父组件中的“我的”按钮:

reload() {
    clearInterval(this.points);
    this.initiateInterval();
    this.redrawImages();
}

我在堆栈上寻找关于它的其他问题,但在我的例子中,这个
reload
函数在这个子组件中使用了很多东西

由于Angular2经常变化,其他问题的解决方案也很少被否决


提前感谢您,我将投票表决所有答案。

组件之间有几种通信方式。我个人为此目的使用了一项服务,它对我来说非常有用

请看这里:

最后一个示例(serviceone)就是我使用的示例,实现起来非常简单

编辑:


使用服务可以让你拥有独立的组件,可以在应用程序的其他部分使用它们。您还可以发送/接收数据,通信是双向的。我强烈推荐这种方法。

共享服务是一个非常好的选择。只需抛出另一个选项,取决于您的用例,如果您愿意,您可以在不使用服务的情况下在父级和子级之间使用主题

在儿童中声明主题:

import { Subject } from 'rxjs/Subject';

public static fireEvent: Subject<boolean> = new Subject();
在你的父母身上:

import { MyChildComponent } from './my-path';
然后在您的按钮上单击,告诉孩子开火
reload
-方法:

toggleMenu() {
  MyChildComponent.fireEvent.next(true);
}