使用$.getJSON对外部变量进行赋值

使用$.getJSON对外部变量进行赋值时的问题

淘淘项目中商品信息和商品类目分别采用tb_itemtb_item_cat两张表进行保存,而在Service层进行查询时采用的是单表查询,只能查询出商品类目的ID,在EasyUI的表单中显示效果就有些不直观。查看数据库表tb_item的结构,其中的status的类型为tinyint,但是表单中的形式却表现为字符串。
在这里插入图片描述
查看了页面代码,发现状态一栏调用了js方法将查出来的数据进行了转换,而商品类目直接采用了查出来的数据。
在这里插入图片描述
于是照猫画虎,将商品类目一栏也进行相应的修改,并在common.js中增加了相应的函数。

// item-list.jsp在页面jsp中为该行数据增加了处理函数
<th data-options="field:'cid',width:100,align:'center',formatter:TAOTAO.formatItemCategory">商品类目</th>

// common.js中增加了处理函数,用来格式化商品类别
formatItemCategory : function formatCategory(val,row){
	var catData = "";
	$.getJSON("/item/cat/" + val,function(data){
		 if(data.status == 200){
			 catData = data.data
		 }
	});
	return catData;
},

本来以为这样就可以了,但实际效果却不尽人意,表单中商品类目一栏反而显示为空白了。
在这里插入图片描述
在百度上查询了一番,原来是因为ajax默认请求是异步处理,在getJSON还没有执行完的情况下,下面的return catData;就执行了,导致页面得到的数据为空。
所以需要将请求改为同步执行,在执行getJSON方法之前,加上$.ajaxSetup({async:false});即可。

formatItemCategory : function formatCategory(val,row){
	var catData = "";
	$.ajaxSetup({async:false});			// 将请求改为同步处理
	$.getJSON("/item/cat/" + val,function(data){
		if(data.status == 200){
				catData = data.data
			}
		});
	return catData;
},

修改完成后,再次刷新页面的时候就可以看到正确的数据。
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值