From bd2994ec3af2745a7aef98e9be78fcdfbd25dc3b Mon Sep 17 00:00:00 2001 From: sight <1453017105@qq.com> Date: Sun, 3 Dec 2023 05:19:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20table=20=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/table.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/modules/table.js b/src/modules/table.js index 08dcb4f9..226bb846 100644 --- a/src/modules/table.js +++ b/src/modules/table.js @@ -77,6 +77,16 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ return config || null; }; + // lay 函数可以处理 Selector,HTMLElement,JQuery 类型 + // 无效的 CSS 选择器字符串,会抛出 SyntaxError 异常,此时直接返回 laytpl 模板字符串 + var resolveTplStr = function(templet){ + try{ + return lay(templet).html(); + }catch{ + return templet; + } + } + // 解析自定义模板数据 var parseTempData = function(obj){ obj = obj || {}; @@ -95,9 +105,10 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ // 获取模板内容 if(templet){ - content = typeof templet === 'function' - ? templet.call(item3, obj.tplData, obj.obj) - : laytpl((templet[0] === '#' ? $(templet).html() : templet) || String(content)).render($.extend({ + if(typeof templet === 'function'){ + templet = templet.call(item3, obj.tplData, obj.obj); + } + content = laytpl(resolveTplStr(templet) || String(content)).render($.extend({ LAY_COL: item3 }, obj.tplData)); }