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);
}