layui数据表格不支持 返回数据中关联其他数据 明明有数据就是没有显示
`{ title:'部门名称',templet:'<div>{{d.department.name}}</div>'}
之前是写模板 后来就烦了于是就开始搜索之路 发现都没什么用
还是老老实实看源码吧 因为我的是压缩的 于是我就去gitee
看源码了 找到了,赋值是直接 把字段放进去的 怪不得获取不到
看到这个我就去 压缩过的table.js中找 我在修改一下获取数据的操作
测试可以
//通过 对象.属性 获取值
function objgetparm(data,str) {
let split = str.split(".");
let obj=data[split[0]];
for (let i=1;i<split.length;i++)
obj=obj[split[i]];
return obj;
}
还有关于layui form val自动赋值也是 不支持 关联关系 很麻烦 于是自己写了个简单的
// data 数据 和 obj 赋值集合的dom对象 根据name名称 来 映射数据
function setvalobj(data,obj){
let elemen= obj!=null? obj:document.getElementsByTagName("input"),e;
for (let n of elemen){
e=n.getAttribute('name');
if(e==null) continue;
let k = objgetparm(data,e);
if(k!=null)
n.value=k;
}
}
修改后的。。。
function setvalobj(data,obj,funA,l){
l = l==null? "value":l;
let elemen= obj!=null? obj:document.getElementsByTagName("input"),e,k,t;
for (let n of elemen){
e=n.getAttribute('name');
if(e==null) continue;
k = objgetparm(data,e);
if(k==null)continue;
t=n.getAttribute("type");
switch (t) {
case 'radio':
if(k==n[l]){//如果 我获取的值和 val本身的值一样就选中
n.setAttribute('checked',true);
}
break;
case 'checkbox':
if(k instanceof Array){
if(k.includes(parseInt(n[l]))){
n.setAttribute('checked',true);
}
}else if(k==n[l]){
n.setAttribute('checked',true);
}
break
default:
n[l]=k;
break;
}
}
if(funA) funA();
}
可能是因为效率才没有加吧 我也没有更好的方法 如果有更好的方法
请大佬不吝赐教