【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
var _menus = {"menus":[ {"menuid":"1","icon":"icon-sys","menuname":"控件使用", "menus":[ {"menuname":"菜单管理","icon":"icon-nav","url":"demo.html"}, {"menuname":"添加用户","icon":"icon-add","url":"demo.html"}, {"menuname":"用户管理","icon":"icon-users","url":"demo.html"}, {"menuname":"角色管理","icon":"icon-role","url":"demo.html"}, {"menuname":"权限设置","icon":"icon-set","url":"demo.html"}, {"menuname":"系统日志","icon":"icon-log","url":"demo.html"} ]}, {"menuid":"8","icon":"icon-sys","menuname":"项目管理", "menus":[ {"menuname":"项目","icon":"icon-nav","url":"demo.html"} ]}]}; 上面是静太调用js 要换成下面的 var _menus = getMenus(); function getMenus(){ var menu=""; $.ajax({ type:'post', url:'/xxx/menus/getMenus', error:function(){$.messager.alert('基本权限管理系统','目前网络繁忙,请稍候在试!','error');}, }); return menu; }
就出问题了,该如何来搞?
因为ajax是异步的,所以没等ajax执行完,就返回数据了,自然为空。
如果数据量小的话,可以考虑在 在ajax中加个参数 async:false,让ajax变成同步!!
http://api.jquery.com/jQuery.ajax/
引用来自“天涯咫尺”的答案
因为ajax是异步的,所以没等ajax执行完,就返回数据了,自然为空。
如果数据量小的话,可以考虑在 在ajax中加个参数 async:false,让ajax变成同步!!
http://api.jquery.com/jQuery.ajax/
加上了async:false 也不行啊,后台能取到数据,估计就是页面显示的时候有点问题
menu变量在哪儿重新赋过值啊?貌似如你的意思,最起码在返回正确时:
success:function(data){
menu=data.XX
}有这么一句吧?
引用来自“sxgkwei”的答案
menu变量在哪儿重新赋过值啊?貌似如你的意思,最起码在返回正确时:
success:function(data){
menu=data.XX
}有这么一句吧?
引用来自“小米粥”的答案
var
menu=
""
;这个参数声明,你在此方法中,从来没有改过这个参数声明的值"",你最后却把它返回回去了,你说,你最终
var _menus不为"",还能为啥?