起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3913|回复: 13

[处理中5] 关于select组件的bind-options赋值问题

[复制链接]

25

主题

79

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
发表于 2016-4-18 22:00:25 | 显示全部楼层 |阅读模式
1,我加了个select组件:
<select xid="stype" bind-optionsLabel="sname" bind-optionsValue="sid" bind-options="$model.getstype()">

2, 定义了个getstype方法,然后通过ajax远程读取了json数组:
[{"sname":"最新信息","sid":"1"},{"sname":"优质资源","sid":"2"},{"sname":"推荐信息","sid":"3"}]

但是会报错:
Uncaught ReferenceError: Unable to process binding "options: function (){return $model.getstype() }"
Message: sname is not defined;

请问下,如何将json数组的内容填充到select组件里呢?
谢谢!
发表于 2016-4-19 17:07:06 | 显示全部楼层
hkdwolf 发表于 2016-4-19 14:55
调试过了,getstype() 方法被触发了4次,但是不知道哪里触发的,有方法调试吗?

我试过把bind-options=" ...

你好楼主,您反馈的这个现象通过验证是产品缺陷,我们已提交到产品组(内部编号:2016041900033),感谢楼主的支持与配合。
qq:1912779713
WeX5教程--WeX5下载
回复 支持 1 反对 0

使用道具 举报

25

主题

79

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2016-4-19 10:14:19 | 显示全部楼层
有人知道哇?
回复 支持 反对

使用道具 举报

发表于 2016-4-19 10:15:26 | 显示全部楼层
select 组件 请参考:http://doc.wex5.com/comps-select/
需要先把json数据加载到data组件中
执行data.loadData(json,true);
select组件的bind-options 绑定了data组件,自然就会下来选择出新添加的字段的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

25

主题

79

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2016-4-19 11:30:12 | 显示全部楼层
本帖最后由 hkdwolf 于 2016-4-19 12:44 编辑
liangyongfei 发表于 2016-4-19 10:15
select 组件 请参考:http://doc.wex5.com/comps-select/
需要先把json数据加载到data组件中
执行data.load ...

我现在加了DATA组件,成功了。但是我抓包发现远程请求居然有4次!!帮忙分析下原因,谢谢!
-------network请求记录
http://localhost:8080/x5/UI2/v_8a94cbb64be74e8ba298496e641561a4l_zh_CNs_d_m/yjst/resadd.w?$pageType=view
http://localhost:8080/x5/UI2/v_8a94cbb64be74e8ba298496e641561a4l_zh_CNs_d_m/yjst/resadd.w?$pageType=model
(注:为什么会有2次请求)

http://www.111.com/yjst/resmgt.php?t=getstype
http://www.111.com/yjst/resmgt.php?t=getstype
http://www.111.com/yjst/resmgt.php?t=getstype
http://www.111.com/yjst/resmgt.php?t=getstype
(注:111.com是内部测试地址,居然有4次请求。。我试过将 bind-options="$model.getstype()" 去掉则1次请求都没有,说明4次都来自于bind-options, Why?)

-------DATA组件:

   <div component="$UI/system/components/justep/data/data"
    xid="stypeData"
    idColumn="fID" autoLoad="true">
    <column label="ID" name="sid" type="String" xid="xidsi
    <column label="类型" name="sname" type="String" xid="xidsname"/>
    <data xid="default12">
    [{"sname":"优质产品","sid":"2"},{"sname":"主产品","sid":"3"},{"sname":"附加产品","sid":"4"}]
    </data>
        </div>

----select:
<select component="$UI/system/components/justep/select/select" xid="stype"
    bind-ref="stypeData.ref('sid')" bind-labelRef="stypeData.ref('sname')" bind-optionsValue="sid" bind-optionsLabel="sname" bind-options="$model.getstype()"></select>
(注:一定要加component="$UI/system/components/justep/select/select"吗?不加会出现帖子主题的未定义错误)
-----JS:
Model.prototype.getstype = function(event){
                var  me=this;
                var stype = "";
                $.ajax({
                        "type" : "post",
                        "data":{
                                "uusid":123
                        },
                        "dataType" : "json",
                        "url" : "http://www.111.com/yjst/resmgt.php?t=getstype",
                        "success" : function(data) {
                                stype = data;
                        }
                });
                return stype;
        };
回复 支持 反对

使用道具 举报

发表于 2016-4-19 14:21:25 | 显示全部楼层
hkdwolf 发表于 2016-4-19 11:30
我现在加了DATA组件,成功了。但是我抓包发现远程请求居然有4次!!帮忙分析下原因,谢谢!
-------networ ...

bind-options 应该绑定data组件才对吧!!
你应该在data组件的onCurrentRefresh 事件中请求数据,然后把数据加载到data组件中!!

至于为什么请求多次,我也不太清楚!!你需要跟一下!!
debugger 调试看看!getstype() 方法触发了几次??
可以通过一个变量判断控制只发送一次请求!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

25

主题

79

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2016-4-19 14:55:14 | 显示全部楼层
liangyongfei 发表于 2016-4-19 14:21
bind-options 应该绑定data组件才对吧!!
你应该在data组件的onCurrentRefresh 事件中请求数据,然后把 ...

调试过了,getstype() 方法被触发了4次,但是不知道哪里触发的,有方法调试吗?

我试过把bind-options="$model.getstype()"去掉,就1次都不触发!说明是这里触发的吗?为什么触发4次呢
回复 支持 反对

使用道具 举报

25

主题

79

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2016-4-19 17:35:46 | 显示全部楼层
liangyongfei 发表于 2016-4-19 17:07
你好楼主,您反馈的这个现象通过验证是产品缺陷,我们已提交到产品组(内部编号:2016041900033),感谢楼 ...

你们抓包了也发现是4个请求? 折腾我一天。。
最后我用jquery自己生成html代码inner进去了。

你看我都报告好几个BUG了,不要奖励,只要我的问题优先些处理
回复 支持 反对

使用道具 举报

6

主题

32

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
发表于 2016-5-16 15:23:26 | 显示全部楼层
请问楼主该问题怎么解决的
回复 支持 反对

使用道具 举报

6

主题

32

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
发表于 2016-5-18 10:51:53 | 显示全部楼层
本帖最后由 舞丹 于 2016-5-18 10:55 编辑

你要先把读取的json数组加载到你自定义的 wex5 的data组件中 ,然后利用bind-ref 等相关 属性把对应的值绑定上就行了,不过我失败了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 23:21 , Processed in 0.059632 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表