代码改变世界

初始化组件封装

2009-05-22 13:32  wlstyle  阅读(232)  评论(0)    收藏  举报

由于做的是业务系统 ,工作中会用到很多的主件 在初始化的时侯要定义很多变量然后依次new 出对象。感觉有必要封装一个方法。一次性初始化出所有的要用到的组件对象。所有了这个封装。

 1    /**初始化所有的组件
 2             * parameter:
 3             * cfg={
 4             *   a:{type:'form',
 5             *    cfg: {
 6                        el: 'J_Ecp'
 7                    }}
 8             * }
 9             * store={}
10             * use:initObj.addObj(cfg,store);
11             * 
12             */

13            var initWidget = (function(){
14                var initObj = (function(){
15                    var map = {
16                        form: NT.form.BasicForm,
17                        grid: NT.widget.GridPanel
18                    }

19                    return {
20                        addObj: function(obj, key, cfg){
21                            obj[key] = new map[cfg[key]['type']](cfg[key]['cfg']);
22                        }
,
23                        addMap: function(key, fn){
24                            map[key] = fn;
25                        }

26                    }

27                }
)();
28                function each(cfg, store){
29                    for (var key in cfg) {
30                        initObj.addObj(store, key, cfg);
31                    }
                                       
32                }

33                return {
34                    init: function(cfg, store){
35                        each(cfg, store);
36                    }
,
37                    addMap: function(key,fn){
38                       initObj.addMap(key,fn);
39                    }

40                    
41                }
               
42            }
)()

对象提供了两个方法一个是init初始化出所有的对象 依次保存在store对象中 。以后要用到组件对象可以直接在这个对象中取得。还提供了一个添加map的方法。这样就可以自由添加组件。做到了一定程度的自适应。其实可以做一点简化。

Code