当前位置: 代码迷 >> Web前端 >> 一个难解的有关问题
  详细解决方案

一个难解的有关问题

热度:73   发布时间:2012-11-23 00:03:43.0
一个难解的问题
   我需要通过服务端的JSON生成EXT的Tree,EXT Tree的JSON数据结构如下所示:
new Ext.tree.TreePanel({
    id:'favorite-tree',
    border:false,
    loader: new Tree.TreeLoader({<----①
           dataUrl:'loadData.do?act=getChildren&node=2222'				}),					                    		rootVisible:false,					
         lines:true,
	root: new Ext.tree.AsyncTreeNode({  <----②
               text: 'ddd',
               draggable:false,
               id:'source',
	      children:[								               {                                           
	                 leaf : true,   
	                 text:'bbb',   
	                 href: "javascript:showTab('menu1','aaa', 'config.spr')"  
	               },
                        {                                           
	                 leaf : true,   
	                 text:'bbb',   
	                 href: "javascript:showTab('menu1','aaa', 'config.spr')"  
	               }
                         ]})
      });


    我们知道使用JSON-lib生成的属性可以是基本数据类型(int、boolean,string等)、对象生成为{},数组生成为[],而String中直接带function()时,Json-lib也会直接生成为aaa:function(){...}
的样式,但是如何让属性是一个带new的JS对象呢(如①,②所示的样式)?
     请知道的朋友相助一下,谢谢!


1 楼 ajaxgo 2007-10-26  
包装一下
root:(function() {
   return new Ext.tree.AsyncTreeNode(....)
})()
不过,没试过,不知道行不行
2 楼 downpour 2007-10-26  
用prototype做引擎的话,可以用bind方法绑定到某函数,让该函数去return你的new出来的东西。
3 楼 afcn0 2007-10-26  
没用过JSON-lib,但是看你说String中直接带function(),就返回aaa:function(){...}
,那是否修改下代码,当String包含"new ...."返回aaa:new ...什么的,或者还不行,可以用函数包下
aaa:function(){return new ....}
调用时就obj.aaa()就是多了俩括号
4 楼 renber 2007-12-06  
建议用moo做框架
  相关解决方案