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

QQ登录

只需一步,快速开始

查看: 10737|回复: 19

[结贴] 关于动态生成data组件的疑问

  [复制链接]

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
QQ
发表于 2016-1-25 09:33:47 | 显示全部楼层 |阅读模式
wex5框架下,data组件只能是否支持动态生成和动态绑定(和list组件动态绑定)呢,如果支持,是否有相关的demo参考下。
目前遇到的应用场景为:页面中有多个list,想用contents插件来实现多标签页左右滑动显示这些list数据,由于项目需求,list的数量和list的数据不确定,需要动态的生成这些list列表,我仔细阅读了wex5中的list组件api,list组件是与data组件在编译前绑定的(data属性设置),而data组件无法动态生成和绑定的话,list组件的数据源就没法获取呢,这个问题困扰了我很久,请wex5大神帮小弟看哈,

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
QQ
 楼主| 发表于 2016-1-25 09:34:51 | 显示全部楼层
小弟在线坐等大神ing......
回复 支持 反对

使用道具 举报

发表于 2016-1-25 11:45:38 | 显示全部楼层
list组件可以动态生成,请参考:http://doc.wex5.com/?p=7598#005
原理上data组件也可以动态生成,只不过现在还没找到案例!你可以在设计器中多定义几个data组件,先准备好!需要的时候再赋值即可!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

发表于 2016-1-25 11:47:51 | 显示全部楼层
本帖最后由 liangyongfei 于 2016-1-25 14:18 编辑

你好楼主,WeX5中动态创建data组件的案例,已作为产品案例建议提交(内部编号:2016012500011),感谢楼主的支持与配合。
这个案例在BeX5 中有提供过:/UI2/system/components/justep/data/demo/demo.w
有兴趣可以下载个BeX5研究下!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

发表于 2016-1-25 14:16:29 | 显示全部楼层
楼主您好,WeX5 中没有提供 动态创建 Data 组件的案例!但是BeX5 中提供了这个案例!所在路径是:/UI2/system/components/justep/data/demo/demo.w
我把这个案例拷贝过来了!你可以参考下!

newData.rar

6.06 KB, 下载次数: 723

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
QQ
 楼主| 发表于 2016-1-25 14:52:13 | 显示全部楼层
liangyongfei 发表于 2016-1-25 14:16
楼主您好,WeX5 中没有提供 动态创建 Data 组件的案例!但是BeX5 中提供了这个案例!所在路径是:/UI2/syste ...

谢谢版主,我这边先研究哈这个案例,
回复 支持 反对

使用道具 举报

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
QQ
 楼主| 发表于 2016-1-25 14:54:46 | 显示全部楼层
liangyongfei 发表于 2016-1-25 14:16
楼主您好,WeX5 中没有提供 动态创建 Data 组件的案例!但是BeX5 中提供了这个案例!所在路径是:/UI2/syste ...

版本,这个案例中demo.w文件解压提示错误,只能获取压缩包中的js文件呢
回复 支持 反对

使用道具 举报

发表于 2016-1-25 14:56:19 | 显示全部楼层
本帖最后由 liangyongfei 于 2016-1-25 15:00 编辑
zhw19105426 发表于 2016-1-25 14:54
版本,这个案例中demo.w文件解压提示错误,只能获取压缩包中的js文件呢

好的,我重新上传了一下这个文件!
js能看,直接看js就好了!因为动态创建data组件的方法主要就是js实现的!

newData.rar

6.12 KB, 下载次数: 629

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
QQ
 楼主| 发表于 2016-1-25 17:08:33 | 显示全部楼层
本帖最后由 zhw19105426 于 2016-1-25 17:16 编辑
liangyongfei 发表于 2016-1-25 14:56
好的,我重新上传了一下这个文件!
js能看,直接看js就好了!因为动态创建data组件的方法主要就是js实现的 ...

版主,你好,我采用案例中的办法生成一个data组件:this.myNewData = new Data(this, {
                        xid: "myNewData",
                        defCols: {
                                id: {
                                        type: "Integer",
                                        label: "标识"
                                },
                                name: {
                                        type: "String",
                                        label: "名称"
                                }
                        },
                        idColumn: "MYNEWDATA"
                });
                this.myNewData.add({id: 123, name: "张三"});
                this.myNewData.add({id: 456, name: "李四"});

然后在一个button的点击事件中动态创建list组件,并与上面动态生成的data组件绑定:
new List({
                    xid: 'list123',
                    autoLoad: true,
                    data: 'myNewData ',
                    template: '<div class="x-list-template"><div data-bind="{text:ref(\'name\')}"></div></div>',
                    parentNode: this.getElementByXid('content2')
                });

运行,点击button提示以下错误信息,而该动态生成的list与利用IDE拖拽方法事先生成的data组件绑定正常,请问该动态生成的有什么问题吗?或者说有什么限制吗?

Cannot read property 'get' of undefined
[url=]隐藏详细[/url]
TypeError: Cannot read property 'get' of undefined at justep.ModelComponent.extend.getRowID (http://localhost:8080/x5/UI2/v_f88586076e814e6796e0c928659ff34dl_zh_CNs_desktopd_/system/common.min.js:7:37413) at justep.ModelComponent.extend._refreshData (http://localhost:8080/x5/UI2/v_f88586076e814e6796e0c928659ff34dl_zh_CNs_desktopd_/system/common.min.js:7:43855) at justep.ModelComponent.extend.refreshData (http://localhost:8080/x5/UI2/v_f88586076e814e6796e0c928659ff34dl_zh_CNs_desktopd_/system/common.min.js:7:43532) at justep.BindComponent.extend.refresh (http://localhost:8080/x5/UI2/v_da07d6d084164dea8d30bb7528d17936l_zh_CNs_desktopd_/system/components/comp.min.js:144:159105) at a (http://localhost:8080/x5/UI2/v_4abcc20dcfb2475bbaa43653d6e99870l_zh_CNs_desktopd_/system/core.min.js:59:165653) at u.applyBindings (http://localhost:8080/x5/UI2/v_4abcc20dcfb2475bbaa43653d6e99870l_zh_CNs_desktopd_/system/core.min.js:59:169656) at Object.e.applyBindings (http://localhost:8080/x5/UI2/v_4abcc20dcfb2475bbaa43653d6e99870l_zh_CNs_desktopd_/system/core.min.js:59:215380) at Object.u.addNodes (http://localhost:8080/x5/UI2/v_4abcc20dcfb2475bbaa43653d6e99870l_zh_CNs_desktopd_/system/core.min.js:59:169936) at Object.u.addComponents (http://localhost:8080/x5/UI2/v_4abcc20dcfb2475bbaa43653d6e99870l_zh_CNs_desktopd_/system/core.min.js:59:170125) at Object.u.addComponent (http://localhost:8080/x5/UI2/v_4abcc20dcfb2475bbaa43653d6e99870l_zh_CNs_desktopd_/system/core.min.js:59:170176)




回复 支持 反对

使用道具 举报

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
QQ
 楼主| 发表于 2016-1-25 17:29:11 | 显示全部楼层
liangyongfei 发表于 2016-1-25 14:56
好的,我重新上传了一下这个文件!
js能看,直接看js就好了!因为动态创建data组件的方法主要就是js实现的 ...

整理了下list和data组件的绑定关系,请问版主,是否满足以下规律,如果不是,请帮忙指正下小弟。
1. 动态生成的list组件和动态生成的data组件,无法完成绑定,生成list组件时会出错
2. 静态定义的list组件和动态生成的data组件(可以在var Model = function(){}中动态生成data组件),可以正常完成绑定,list显示data组件的数据正常
3. 动态生成的list组件和静态定义的data组件,可以正常完成绑定,list显示data组件的数据正常
4. 静态定义的list组件和静态定义的data组件,可以正常完成绑定,list显示data组件的数据正常
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 13:22 , Processed in 0.063976 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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