# PortalEventBus


# 1.简介

门户空间的EventBus,主要用于以下功能开发。

1.栏目之间的数据通信。

2.监听空间的事件。

# 门户的平台事件

名称 说明 返回值
portal-onResizeReload 门户的layout区域size发生变化 id:可能会返回栏目id
portal-columnGroupResize 栏目组发生了变化 groutKey:栏目组的key
portal-optionReload option变更 可能会返回栏目id
portal-forceReload 皮肤变化,菜单位置变化

示例:

var fun = function(params) {
     // TODO:如果门户内部空间发生了变化,则执行...
 }
 // 监听空间事件
 window.PortalEventBus.$on('portal-onResizeReload', fun);

# window.PortalAjax.$on(eventName, fn)

监听事件 参数 说明 类型 可选值 备注
eventName url String
fn 回调函数 Function

示例:

var scrollFun = function(params) {
     ....
 }
 window.PortalEventBus.$on('my-event', scrollFun);

# window.PortalAjax.$off(eventName, fn)

关闭事件 参数 说明 类型 可选值 备注
eventName url String
fn 监听时的函数对象 Function

示例:

window.PortalEventBus.$off('my-event', scrollFun);

# window.PortalAjax.$emit(eventName, params)

触发事件 参数 说明 类型 可选值 备注
eventName url String
params 发送的数据 Object

示例:

window.PortalEventBus.$emit('my-event', params);

如果两个栏目需要通信:

1、先约定一个广播名称:比如[my-event-1]

2、发送方 发送方:栏目A 把参数通过对象发送出去

window.PortalEventBus.$emit('my-event-1', {p1:1,p2:2});

接收方:栏目B

window.PortalEventBus.$on('my-event-1', (params)=>{
   // params:{p1:1,p2:2}
   // TODO: 获取到参数后,执行栏目B操作
}
);

发送方与接受方式一对多关系,一个发送何以多个栏目同时接收,只要是广播名称相同都能接收。

接收方:栏目C

window.PortalEventBus.$on('my-event-1', (params)=>{
   // params:{p1:1,p2:2}
   // TODO: 获取到参数后,执行栏目C操作
}
);
编撰人:yinyanting