mirror of https://github.com/layui/layui
修复 table 表头属性 `templet` 使用模板字符串时,一些特殊的自定义 laytpl 界定符被转义的问题 (#1438)
* 修复 table 表头属性 `templet` 使用模板字符串时,一些特殊的自定义 laytpl 界定符被转义的问题 例如使用 `<% %>` 作为界定符时,`<` 和 `>` 会被转义 close https://gitee.com/layui/layui/issues/I8L3OC * 优化 table 模板解析 * 回退pull/1447/headbd2994e
中对 table 模板函数类型的改动 revert·bd2994ec3a
BREAK CHANGE 1.模板字符串最外层包裹 div 时的行为不同,现在由 laytpl 直接处理,会保留最外层的 div,估计影响比较小 2.不再支持 jQuery 特有的选择器,几乎无影响
parent
7c12ddfdf3
commit
cc880885a0
|
@ -77,6 +77,16 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
return config || null;
|
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){
|
var parseTempData = function(obj){
|
||||||
obj = obj || {};
|
obj = obj || {};
|
||||||
|
@ -97,7 +107,7 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
if(templet){
|
if(templet){
|
||||||
content = typeof templet === 'function'
|
content = typeof templet === 'function'
|
||||||
? templet.call(item3, obj.tplData, obj.obj)
|
? templet.call(item3, obj.tplData, obj.obj)
|
||||||
: laytpl($(templet).html() || String(content)).render($.extend({
|
: laytpl(resolveTplStr(templet) || String(content)).render($.extend({
|
||||||
LAY_COL: item3
|
LAY_COL: item3
|
||||||
}, obj.tplData));
|
}, obj.tplData));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue