组件

作者: sundern | 来源:发表于2018-08-29 13:17 被阅读3次

!!!.触发事件:

事件较少:直接用事件名+对象+方法体

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.取

相关文章

网友评论

      本文标题:组件

      本文链接:https://www.haomeiwen.com/subject/xsihwftx.html