1. 首页 > 热点 >

titlepage模板 template模板

大家好我是小源,titlepage模板,关于template模板很多人还不知道,那么现在让我们一起来看看吧!

titlepage模板 template模板titlepage模板 template模板


titlepage模板 template模板


1、在js中如何实现设计模式中的模板方法?思路的产生必然要求熟悉js,如何实现?就很简单了,都知道在js中如果定义两个相同名称的方法,前一个方法就会被后一个方法覆盖掉,使用此特点就可以实现模板方法。

2、例如在实际的项目中有很多页面作的步骤基本相同,但局部细节却不一样。

3、例如在我所在的项目中,就有很多展示数据库记录的页面,每个页面都存在读取记录,查询记录,增加删除,修改记录等相同的作,但对应的后台方法却不一样。

4、代码如下:function ListCommon2() {var Add;var tableid;var titleText="";var winid = "#win";var columns;var s;var queryParams;var colkey;var sTypis.initList = function (aAdd, aAjax, atableid, atitleText, awinid, acolumns, asType) {Add = aAdd;Ajax = aAjax;if (atableid) {tableid = atableid;}if (atitleText) {titleText = atitleText;}if (atitleText) {winid = awinid;}columns = acolumns;sType = asType;};this.initData = function () {if (!sType) {s = [{ text: '添加', iconCls: 'icon-add', handler: Add }, '-', { text: '编辑', iconCls: 'icon-edit', handler: this.Edit }, '-', { text: '删除', iconCls: 'icon-cancel', handler: this.delMsg }];} else {s = sType;}queryParams = this.GetqueryParams();$(tableid).datagrid({: Ajax + '?OperationType=list',columns: columns,: s,idField: colkey,pagination: true,pageSize: 20,sortName: colkey,sortOrder: 'desc',rownumbers: true, fitColumns: true,striped: true,mod: "t",striped: true,queryParams: this.GetqueryParams(),showFooter: true, pageList: [10, 20, 30, 40, 50]$("#add").click(function (e) {Add();})$("#edit").bind('click', { obj: this }, function (nt) {nt.data.obj. Edit();})$("#del").bind('click', { obj: this }, function (nt) {nt.data.obj.delMsg();})$("#btnQuery").bind('click', { obj: this }, function (nt) {var queryParamsnew = nt.data.obj.GetqueryParams();$(tableid).datagrid('load', queryParamsnew)})}this.GetqueryParams = function () {var NameList = this.Getcols();var otherQueryParams = this.GetOtherQueryParams();if (!otherQueryParams) {return { colkey: colkey, cols: NameList }}else {return otherQueryParams;}}$(winid).dialog({this.GetOtherQueryParams = function () {return null;}this.Getcols = function () {var fieldNameList = [];if (columns.length > 0) {for (var i = 0; i fieldNameList.push(columns[0][i].field);}}else {alert("未绑定数据");}colkey = fi在Jinja2模板中,我们用{{ name }}表示一个需要替换的变量。

5、很多时候,还需要循环、条件判断等指令语句,在Jinja2中,用{% ... %}表示指令。

6、eldNameList[fieldNameList.length-1];var NameList = fieldNameList.join(",");return NameList}function Add() {var _content = '';width: 600,height: 400,modal: true,content: _content,title: "增加" + titleText,draggable: true,resizable: true,shadow: true,minimizable: false}this.Edit = function (editId) {var id; var obj = typeof (editId);if (!editId || obj == "object") {var s = $(tableid).datagrid('getSelections');var length = 提示', '请选择一条记录然后编辑');} else if (length > 1) {提示', '由于一次只能编辑一条记录,所以只能修改条记录');}id = GetId(s[0]);}else {id = editId;}var _content = '';width: 600,height: 400,modal: true,content: _content,title: "修改" + titleText,draggable: true,resizable: true,shadow: true,minimizable: false}this.windowclose = function () {$(winid).window('close');}this.SeOkCallback = function () {this.windowclose();$(tableid).datagrid('reload');$(tableid).datagrid('unselectAll');}this.delMsg = function (delId) {var length = 1;var s; var obj = typeof (delId);if (!delId || obj == "object") {s = $(tableid).datagrid('getSelections');length = 提示', '请至少选择一条记录然后删除');}}else {id = delId;}var text = '你确认删除' + length + '条记录吗?';if (length == 1) {text = '你确认删除该条记录吗?';}提示', text, function (r) {if (!delId) {var idList = [];function (key, value) {var id = GetId(value); // in case we're changing the keyidList.push(id);id = idList.join(",");}del(id)}});$.ajax({ type: "t",: Ajax + "?OperationType=del&id=" + id,success: function (msg) {var obj = jQuery.parseJSON(msg);if (obj.IsSuccess == true) html=replace(html,"{$content$}",content) '把skin.html里的{$content$}替换成content变量{提示', obj.Msg);selectcallback();}else {提示', obj.Msg);}}}function selectcallback() {SeOkCallback();}}仔细看看就会发现,这段代码就包含了,查询,修改,添加,删除等几乎所有的作,但由于查询条件传递的参数不同,所以有一个需要重写的方法this.GetOtherQueryParams根据不同的页面重写就可以了。

7、例如如下一个页面的重写:代码如下:obj = new ListCommon2();obj.initList(Add, Ajax, tableid, titleText, winid, columns, '#tb');obj.GetOtherQueryParams = function () {var cols = obj.Getcols();return { cols: cols, SWV_Performance_fk: $('#SWV_Performance_fk')bobox('getValue'), S_NAME: $("#S_NAME").val(), SQ_NAME: $("#SQ_NAME").val() };}obj.initData();})当然也可以不定义方法,此处只调用,例如GetId(s[0]);在此处就没有定义,在具体的页面在具体定义代码如下:function GetId() {return .SWV_ID}都可以达到同样的效果。

8、还有一种就是传递一个函数。

9、具体哪种方式最合适,个人认为还是使用模板方法。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息