数据表格模板问题

提问 已结 10 271
莫名其妙78
悬赏:20飞吻
版本:layui 2.5.6 浏览器:
,{field:'loginip' , align:'center' ,  minWidth:200,  title: '登录IP'}
,{field:'loginadd' , align:'center' , minWidth:200, title: '登录地址',
templet: function(d){
$.ajax({
url: "https://restapi.amap.com/v3/ip?output=json&key=fc9ab3e41e05ebc633244a07a83e1b1f",
type : "get",
dataType : "json",
data: {"ip" : d.loginip},
success: function(data) {
var res= data.province + data.city;
return res;
},
})
}
}
如上述代码,我想根据IP获取对应的地址
接口没问问题,直接访问接口是可以得到的,但是为何我写在数据表格模板里面,得到的就是undefined呢?是哪里错了吗?
回帖
  • 首先要同步,其次,你仔细看下return的作用域
    0 回复
  • MiniUI
    2020-2-18
    var res;
    $.ajax({
    ...
    res = data.province + data.city;
    });
    return res;
    试下,不确定。
    0 回复
  • IDyun
    2020-2-18
    ajax改成同步
    0 回复
  • @MiniUI 试过了,不行。
    0 回复
  • @IDyun
    ,{field:'loginadd' , align:'center' ,  minWidth:200,  title: '登录地址', 
    templet: function(d){
    $.ajax({
    url: "https://restapi.amap.com/v3/ip?output=json&key=fc9ab3e41e05ebc633244a07a83e1b1f",
    async: false,
    type : "get",
    dataType : "json",
    data: {"ip" : d.loginip},
    success: function(data) {
    var res= data.province + data.city;
    return res;
    },
    })
    }
    }
    还是一样的,不行。
    0 回复
  • @MiniUI @IDyun
    ,{field:'loginadd' , align:'center' ,  minWidth:200,  title: '登录地址', 
    templet: function(d){
    var res;
    $.ajax({
    url: "https://restapi.amap.com/v3/ip?output=json&key=fc9ab3e41e05ebc633244a07a83e1b1f",
    async: false,
    type : "get",
    dataType : "json",
    data: {"ip" : d.loginip},
    success: function(data) {
    res= data.province + data.city;

    }
    })
    return res;
    }
    }
    综合你们的意见,可以显示了。

    但是AJAX同步的话严重影响页面加载速度,有什么其它写法吗?
    谢谢!!
    0 回复
  • @岁月小偷 已经修改了,谢谢!单位同步加载速度比较慢,请问有其它写法吗?
    0 回复
  • 一般可以在table的done回调里面去处理,遍历数据,发异步请求,在返回中进行DOM操作,
    0 回复
  • IDyun
    2020-2-18
    Ajax异步加载数据及Redis缓存
    https://www.cnblogs.com/zemul/p/10215978.html
    ip 对应地址 存成字典。
    也可以后台处理
    0 回复
  • @IDyun @岁月小偷 谢谢!
    0 回复