/******************************************************************************* * * 代理: 事件 * * * * 2021.12.10 ******************************************************************************/ // 功能安装 const install = function( _inst ) { // 对象非法 if( nx.dt.objEmpty( _inst ) ) { nx.error( "[事件插件]安装失败,对象非法!" ); return false; } // 重复安装 if( nx.dt.arrGood( _inst.lstEvent ) ) { nx.error( "[事件插件]安装失败,重复安装!" ); return false; } // 安装 _inst.lstEvent = []; // 事件监听 nx.dt.fnEmptyError( _inst.bindEvent ); _inst.bindEvent = function( _list ) { // 重复 if( nx.dt.arrNEmpty( _inst.lstEvent ) ) { nx.error( "[事件插件]重复监听事件." ); return; } _inst.lstEvent = _list; if( nx.dt.arrNEmpty( _list ) ) { nx.event.bind( _inst, _list ); } }; // 事件监听解除 nx.dt.fnEmptyError( _inst.unbindEvent ); _inst.unbindEvent = function() { _inst.lstEvent = []; nx.event.unbind( _inst ); }; // 事件发布 nx.dt.fnEmptyError( _inst.sendEvent ); _inst.sendEvent = function( _eid, _args ) { nx.event.send( _eid, _args ); }; return true; }; // 功能卸载 const uninstall = function( _inst ) { // 对象非法 if( nx.dt.objEmpty( _inst ) ) { nx.error( "[事件插件]安装视图插件失败,对象非法!" ); return false; } // 取消监听 _inst.unbindEvent(); // 卸载 delete _inst.lstEvent; delete _inst.bindEvent; delete _inst.unbindEvent; delete _inst.sendEvent; return true; }; module.exports = { install, uninstall };