容器内容管理模块
之前已经介绍了视图管理模块(ViewManager),通过json格式的数据,渲染页面上的容器(个人觉得数据格式定义的很好,甚至可以在后期改为动态编辑态,题外话...)
通俗的来讲,房子已经建好了,下面就是需要给房子内部添加内容了。这个添加内容的功能,我命名为CtnManager,用来管理容器内容,而容器内部数据的格式,在这里给出:
{//对应一个chart控件 type: 'line', series:[ { title:'淘宝销售天数据',//对应到图例 uid: 'DayIncome', dataRange: { start: '2014/11/8', end: '2014/-1/-1' }, } ], panel_index:"af2d36k7"//对应到容器中的id }
CtnManager要管理的就是多个上面这样的数据,包括添加,清除,更新,所以经过分析得出模块的方法如下:
CtnManager.prototype.add = function(data){ this.panels.push[data.panel_index] = new PanelCtnManager(data); }; CtnManager.prototype.clearPanel = function(id){ var p = this.panels[id]; if(!p){ throw "要清除的内容不存在!" } p.Dispose(); }; CtnManager.prototype.update = function(id, dataRange){ var p = this.panels[id]; if(!p){ throw "要更新的内容不存在!" } p.Update(dataRange); };
这里提到了另一个模块PanelCtnManager这个模块的输入参数为一个Panel的数据对象,管理Panel的数据更新,ajax请求及回复。