博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模块化数据驱动解决方案
阅读量:6088 次
发布时间:2019-06-20

本文共 1843 字,大约阅读时间需要 6 分钟。

项目结构:

 

页面调用:index.html

	
Document

 

js封装: index.js

 

// 模块化数据驱动// 自运行函数(闭包)var MetaDriver = (function(){	return factory.call(root); // 返回一个对象})(this,function(form){ // this -> window	// 驱动引擎	var __DRIVER__ = {		form:null, // 驱动模块输入表单		parameters: function(){			return this.form.serialize();		},		init:function(form,meta){			if(!form)throw new Error("not found form!");			this.form = form;			// 框架初始化的工作			// this.fetch(meta); // 分解meta元数据里面的数据到对应模块			// this.render(); // 驱动渲染所有lock为true的模块			meta&&this.reset(meta);		},		reset:function(meta){ // 重置数据			this.fetch(meta); // 分解meta元数据里面的数据到对应模块			this.render(); // 驱动渲染所有lock为true的模块		},		fetch:function(meta) {			// 分解meta元数据里面的数据到对应模块			for(var m in __MODULES__){				if(meta[m]){					// 这次填充的数据					__MODULES__[m].model = meta[m];					__MODULES__[m].lock = true; // 打开渲染				}			}		},		render: function(){ // 渲染			var module;			for(var m in __MODULES__){				module = __MODULES__[m];				if(module.lock){					// 这次填充的数据					module.render();					module.lock = false; // 关闭渲染				}			}		}	};	// 对应的视图模块集合	var __MODULES__ = {		"detail": {			"model": null, // 创建模块数据 这个模块的元数据			"view": $("detail-data"), // 模块的视图区域			"render": function(){ // 渲染器  刷新页面				// 把元数据的数据更新到视图中去				for(var prop in this.model){					this.view.find("#"+prop).text(this.model[prop]);				}			},			"lock": false, // 渲染开关是否为true		},		"invest": {			"model": null, // 创建模块数据 这个模块的元数据			"view": null, // 模块的视图区域			"render": function(){ // 渲染器  刷新页面				// 把元数据的数据更新到视图中去				console.log("invest render");			},			"lock": false, // 渲染开关是否为true		},		"list": {			"model": null, // 创建模块数据 这个模块的元数据			"view": null, // 模块的视图区域			"render": function(){ // 渲染器  刷新页面				// 把元数据的数据更新到视图中去				console.log(this.model);			},			"lock": false, // 渲染开关是否为true		}	};	return __DRIVER__;})

.

转载于:https://www.cnblogs.com/crazycode2/p/7088209.html

你可能感兴趣的文章
极客技术专题【002期】:开发小技巧 - 如何使用jQuery来处理图片坏链?
查看>>
【安全牛学习笔记】MSsqlL注入取得网站路径最好的方法
查看>>
使用SseEmitter不断向网页输出结果
查看>>
基于UDP的效劳器端和客户端
查看>>
什么是线程安全?
查看>>
renderform 使用
查看>>
分区表 fstab
查看>>
四川大学本科教务系统 - 一键评教
查看>>
Python 之 模块初识
查看>>
最常用的酒店IPTV系统实施方案
查看>>
thinkphp if标签比较标签
查看>>
系统架构高可用系统设计原则01
查看>>
设计模式——适配器模式(adpter模式)
查看>>
shell实例手册
查看>>
df命令、du命令、磁盘分区
查看>>
eolinker API-Shop “世界气象日”天气接口专题
查看>>
Cron表达式简介
查看>>
.net core权限认证
查看>>
eyoucms如何管理栏目
查看>>
车联网上云最佳实践(一)
查看>>