|
动态创建 list 时遇到问题,在论坛上找到了一些办法,也试验成功,如:
方法一:不能使用复杂组件
http://doc.wex5.com/?p=7598#005中采用:
- var cfg = {
- xid: 'list1',
- autoLoad: true,
- data: 'newsData',
- template: '<div class="x-list-template"><div data-bind="{text:ref(\'fTitle\')}"></div></div>',
- parentNode: this.getElementByXid('view')
- };
- new List(cfg);
复制代码 经过测试是成功的,但这里只是用 div 来展现数据,如果想通过 labelInput 这样的组件来展现,通过修改template始终未能成功,代码如下:- var cfg4 = {
- xid: 'list2',
- autoLoad: true,
- data: 'data1',
- template: "<ul class='x-list-template' xid='listTemplateUl2'><li xid='li2'>"
- +"<div component='$UI/system/components/justep/labelEdit/labelEdit' class='x-label-edit x-label30' xid='labelEditll1'>"
- +"<label class='x-label' xid='labelll1' data-bind='{text:val("label")></label>"
- +"<input component='$UI/system/components/justep/input/input' class='form-control x-edit' xid='inputll1' data-bind='{text:val("label")>"
- +"</input></div></li></ul>",
- parentNode: this.getElementByXid('div2')
- };
- new list(cfg4);
复制代码 方法二:
根据list的dom结构,一层一层地创建,组件是创建成功了,但数据绑定有问题,代码如下:
- var parentNode = this.getElementByXid("div2");
- var option = {
- "parentNode" : parentNode,
- "xid" : "list2",
- "data" : "data1"
- }
- new list(option) ;
- parentNode = this.getElementByXid("list2");
- var ul = $("<ul class='x-list-template' xid='listTemplateUl2'></ul>");
- justep.Bind.addNodes(parentNode, ul);
- parentNode = this.getElementByXid("listTemplateUl2");
- var li = $("<li xid='li2'></li>");
- justep.Bind.addNodes(parentNode, li);
- //生成展现组件
- parentNode = this.getElementByXid("li2");
- var label = $("<label class='x-label' xid='label1' data-bind="{text:val('label')}"></label>"); //失败
- justep.Bind.addNodes(parentNode, label);
复制代码 在这里出现错误:
请问:如果在 list 下,用 labelinput 这样复杂的组件来展现数据呢?
|
|