{field: 'noerrord_id', title: __('申报人姓名'), formatter: function(value, row, index, field) { if(value != "") { var globalData = ''; $.ajax({ url: "unit/driver/selectNoEName?id=" + value, type: "get", dataType: "json", success: function(data) { if(data.code == 1) { globalData = data.msg; } } }); } return globalData; }},为啥返回不了globalData
时间: 2024-01-19 20:02:25 浏览: 110
formatter的用法
这是因为`$.ajax`是异步请求,它会立即返回而不会等待请求完成。所以在`formatter`函数中,当`return globalData`执行时,`globalData`的值尚未被设置为从服务器返回的数据。解决办法是在`success`回调函数中设置`globalData`的值,并在`success`回调函数中执行`return globalData`。例如:
```
formatter: function(value, row, index, field) {
if(value != "") {
var globalData = '';
$.ajax({
url: "unit/driver/selectNoEName?id=" + value,
type: "get",
dataType: "json",
success: function(data) {
if(data.code == 1) {
globalData = data.msg;
// 在success回调函数中执行return globalData
return globalData;
}
}
});
// 在ajax请求完成之前,返回空字符串
return '';
}
}
```
这样,当`globalData`被设置为从服务器返回的数据时,`return globalData`会被执行并返回正确的值。如果`value`为空或`$.ajax`请求失败,将返回空字符串。
阅读全文