jQuery MiniUI

 找回密码
 立即注册
查看: 3748|回复: 7
打印 上一主题 下一主题

请教一下怎么可以为Genders获取值啊? [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2021-8-13 07:39:15 |只看该作者 |倒序浏览

  1. function getConfigData(type) {
  2.     var options={
  3.             requestType:'GET',
  4.             url:'/api/system/config/data/GetDictData?dictType='+type+'&defaultValue=',
  5.             callback: function (text) {
  6.                 var result = mini.decode(text);
  7.                 return result.data;
  8.         }
  9.     }
  10.     RequestData(options)
  11.    
  12. }
  13. var Genders = getConfigData('sys_user_sex');
复制代码
从服务器已经获取了返回值,但return result.data;却无法对Genders获取正确的值,请大神指点一下




Rank: 6Rank: 6

沙发
发表于 2021-8-13 10:38:50 |只看该作者
建议多看下js的同步和异步

Rank: 8Rank: 8

板凳
发表于 2021-8-13 11:03:13 |只看该作者
RequestData具体的代码呢?

Rank: 6Rank: 6

地板
发表于 2021-8-13 13:45:48 |只看该作者
felt 发表于 2021-8-13 11:03
RequestData具体的代码呢?
  1. function RequestData(options) {
  2.     if (typeof options == "string") options = { url: options };
  3.     options = $.extend({
  4.         callback: function (result) {
  5.         }
  6.     }, options);
  7.     $.ajax({
  8.         url: options.url,
  9.         type: options.requestType,
  10.         success: function (text) {
  11.             options.callback(text)
  12.         },
  13.         error: function (jqXHR, textStatus, errorThrown) {
  14.             if (options.callback(false) !== false) {
  15.                 alert("HTTP Error\n\n" + jqXHR.responseText);
  16.             }
  17.         },
  18.         complete: function () {
  19.         }
  20.     });
  21. }
复制代码
是这段代码呢

Rank: 8Rank: 8

5#
发表于 2021-8-13 14:17:20 |只看该作者
joyoes 发表于 2021-8-13 13:45
是这段代码呢

这正如2楼的说法了,异步的问题了

Rank: 6Rank: 6

6#
发表于 2021-8-14 08:42:28 |只看该作者
本帖最后由 joyoes 于 2021-8-14 09:08 编辑
felt 发表于 2021-8-13 14:17
这正如2楼的说法了,异步的问题了

我已经成功将它改为异步了,但怎么也无法绑定到控件上去啊?求指导一下呢:
  1. async function getConfigData(type) {
  2.         return new Promise((resolve, reject) => {
  3.             var options={
  4.                     requestType:'GET',
  5.                     url:'/api/dict/GetDictData?dictType='+type+'&defaultValue=',
  6.                     callback: function (text) {
  7.                         var result = mini.decode(text);
  8.                         resolve(result.data.values)
  9.                 }
  10.             }
  11.             RequestData(options)
  12.         })
  13.     }
  14.     //性别:
  15.     const Genders=getConfigData('sys_user_sex').then(function(v) {
  16.         //console.log(v)
  17.         return v
  18.     })
  19.     console.log(Genders)
  20.     function onGenderRenderer(e) {        
  21.         for (var i = 0, l = Genders.length; i < l; i++) {
  22.             var g = Genders[i];
  23.             if (g.key == e.value) return g.text;
  24.         }
  25.         return "";
  26.     }
复制代码
如何实现将异步方法获取的数据绑定到控件中去啊?
  1. <div field="sex" width="100" allowSort="true" renderer="onGenderRenderer" align="center" headerAlign="center">性别
  2.                                 <input property="editor" class="mini-combobox" style="width:100%;" data="Genders"/>
  3.                             </div>
复制代码



Rank: 6Rank: 6

7#
发表于 2021-8-14 16:10:37 |只看该作者
felt 发表于 2021-8-13 14:17
这正如2楼的说法了,异步的问题了

怎么会出现setData未定义呢?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

8#
发表于 2021-8-16 09:15:08 |只看该作者
joyoes 发表于 2021-8-14 16:10
怎么会出现setData未定义呢?

编辑器无法根据id来获取的
var eidtor=grid.getCellEditor(column)
editor.setData(data);

Archiver|普加软件

GMT+8, 2024-11-26 10:15 , Processed in 1.072226 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部