有点抽像,先看代码:
var menuList = [
{
text: '菜单1',
handler: function(){
alert("菜单1");
}
}, {
text: '菜单2',
handler: function() {
alert("菜单2");
}
}]; var menu = new Ext.menu.Menu({
listeners: {
beforerender: function(component, eOpts)
{
for (var i = 0; i < menuList.length; i++){
component.add(menuList[i]);//增菜单项
}
}
}
});我要实现点菜单1时,提示菜单1,如果单纯是这样写死的本地代码,是没问题的,但如今,我的menuList是从后台传过来的,后台的就是用json的数组对象,
JsonObject jsonObject = new JsonObject();
jsonObject .addProperty("text", "test1");
jsonObject .addProperty("handler", "function(){alert(\"菜单\");}");//这个写法不对,没效果,不知道要怎么写呢?很是奇怪,这里值要必需是字符串,但要没效果,请高人指点
jsonArray.add(jsonObject );
var menuList = [
{
text: '菜单1',
handler: function(){
alert("菜单1");
}
}, {
text: '菜单2',
handler: function() {
alert("菜单2");
}
}]; var menu = new Ext.menu.Menu({
listeners: {
beforerender: function(component, eOpts)
{
for (var i = 0; i < menuList.length; i++){
component.add(menuList[i]);//增菜单项
}
}
}
});我要实现点菜单1时,提示菜单1,如果单纯是这样写死的本地代码,是没问题的,但如今,我的menuList是从后台传过来的,后台的就是用json的数组对象,
JsonObject jsonObject = new JsonObject();
jsonObject .addProperty("text", "test1");
jsonObject .addProperty("handler", "function(){alert(\"菜单\");}");//这个写法不对,没效果,不知道要怎么写呢?很是奇怪,这里值要必需是字符串,但要没效果,请高人指点
jsonArray.add(jsonObject );
alert(s)
var o=eval('('+s+')')
alert(typeof o.handler)//输出string,不是function,所以需要再eval一次
o.handler=eval('('+o.handler+')')
alert(typeof o.handler)//输出function
o.handler()