angular2子组件的事件交付
Angular2由很多组件组成,画面由多条路线路由,使得事件的传递显得笨拙。这个小组的技术负责人发现了这种通过任何组件传递事件的方法,并教我做一个笔记。
项目状态:
画面结构复杂,路线多,组件多,嵌套复杂。业务需求:点击任何一个人的名字,直接打开和这个人的聊天界面
以往angular2官网给出的烹饪技巧基本解决了90%的需求。当然,如果使用输入和输出,结构会很混乱。
附件:angluar2的组件通讯门户(anglar2的官网不太支持Safari,热爱生活,请用chrome)
实现
service:
这是关键点,相当于一个事件队列。注入到该服务中的所有组件都可以启动事件并将它们插入队列。订阅此事件队列的所有组件都将接收广播。(暂且用广播这个词)
public event bus : eventemiterny=new eventemiterny();聊天组件:
构造函数(private _ workservice : workservice){//订阅此聊天事件。_ workservice . eventbus . subscribe(_ event={ if(_ event _ event . name=' chart '){//订阅此事件的所有组件都将被event bus上的事件触发,这相当于广播。//所以在事件传递的参数中加入一个name变量,来判断这个事件是否适合我。//.//就写在这里,通过_event//..................
this . workservice . event bus . emit({ type :3,voipaccount : userid });//注意emit()的参数是json结构。简单指示
以上关于angular2子组件的事件传输(任意组件的事件传输)的讨论,都是边肖分享给大家的内容,希望能给大家一个参考和支持。