!!!.触发事件:
事件较少:直接用事件名+对象+方法体
this._on({“事件1 [.class]”:事件方法1,“事件2 [.class]”:事件方法2
});
1.
事件较多:data-command(fileManagerCommand)
需要在_initWidget中:this._bindWidgetCommand();
!!!.页面调用组件方法:
1.在页面上包装一个func:
$elem('gatherDesigner',pageId).gatherDesigner('setIndicatorPosition',{value:'setSalveItemIndicatorPosition'});//func里面直接调用组件里的方法
2.直接在组件内代理:window apply call
var funcNames = ["funcName1","funcName2"];//定义一个方法名数组
var funcPrefix = this.options.refs[0] + '_xmenu_';//refs[0]一般为参考的树的id,定义方法前缀
$(funcNames).each(this._proxy("_bindWindowFunc"),funcPrefix );//遍历方法名,调用事件绑定的方法,传入方法前缀
_bindWindowFunc:function(index,name,funcPrefix ){//代理真正的方法
var funcName = funcPrefix + name ;
window[funcName ] = this._proxy(name);
}
【注意:name表示事件方法的实际名称 funcName表示整个的拼接名称】
【name】 function(treeNode){
}
【注意:绑定的方法较多时可以抽取为单独的方法:eg:_bindGatherReportTree:function(){}】
!!!定义全局变量:
在初始化组件里this.dialogs = {}; --取值也是直接this.取
网友评论