用ext实现动态menu 我的思路如下:
1:定义一个空的menu var NodeMenu=new Ext.menu.Menu();
2.用ajax从数据库里面去的想要的数据转换成json的格式 ajax的异步代码如下:
Ext.Ajax.request({
url:'menu.do',
success:function(response){
var menuItem=Ext.decode(response.responseText);//这里返回的是一个json格式的
NodeMenu.add(menuItem);然后将这个动态的menuItem传递给上面定义的menu
}
});
可是我这样定义 子菜单还是为空 menu.do的json转化后的格式为[{id:'1',text:'aa'},{id:'2',text:'bb'}]
是我的json格式错了 还是不应该用add方法 谢谢
问题补充:
楼下的两个方法我都试过了 用additem就提示不支持此方法 用那个数组的方法也是错误的 因为menuItem是一个对象类型 根本不是数组呀
问题补充:
我的alert(response.responseText)已经上传 提醒一下 我没有alert(Ext.decode(response.responseText)) 加上ext.decode后 编程object了
问题补充:
按照你这样的写法后 怎么提示了一个错误 render为空或者不是对象 我的菜单已经绑定了的呀 是不是因为刚开始定义了一个空的menu的原因吧
问题补充:
知道原因了 是因为我的var mi = menuItem[i]; 的值 我alert了一下 还是undefined 我再看看吧 谢谢大家
问题补充:
var items = menuItem.msg;
for(var i =0;i < items.length; i++)
{
var mi = items[i];
NodeMenu.add(mi);
} 这种方式不行 因为items虽然格式是[{id:'1',text:'aa'},{id:'2'},text:'bb'],但是items[i]的值 是undefind 哎 这不是数组类型吧