使用场景 在初始化table中 A列中状态 存储的是一个ID值 ,采取用formatter:方法请求后台数据(根据UUID查对应数据)
columns: [ {field: 'ck', checkbox: true}, { field : 'Number', title : '序号', align: 'center', width: 20, formatter : function(value, row, index) { // 此方法来自网络 var pageSize=$('#table').bootstrapTable('getOptions').pageSize; var pageNumber=$('#table').bootstrapTable('getOptions').pageNumber; return pageSize * (pageNumber - 1) + index + 1; } }, {field: 'A', title: '状态',class:'类名', sortable: true, align: 'center', formatter: 'Formatter'}, {field: 'B', title: '操作', align: 'center', formatter: 'actionFormatter', events: 'actionEvents', clickToSelect: false, width : '10%'} ]
想通过同步 对变量showValue 进行赋值来使用
function Formatter(value){ let showValue; $.ajax({ type:"get", async:false, crossDomain: true, url: 'http://domain:8080/cache/query', data:{Id:value}, dataType:'jsonp', jsonp: "jsonpCallback", success: function (data) { //此处后台JSON字符串用alibba fastJson 处理 lcache为前端一个缓存 // 此处问题所在 想存入前端缓存后 再次取值 但因为跨域同步请求好像无效 $.each((data.rows),function(index,element){ lcache.put(element.id,element.z40104); }); showValue=lcache.get(value) },error: function (data) { } }); return showValue; }
tips:可利用springMVC cors 注解实现 跨域
解决方法: 上述Formatter直接执行ajax 在success回调中调用自己定义的函数 来操作DOM