Extjs4 extjs 4如何在JSON字符串中传递函数
我正在使用JSON字符串创建门户 差不多Extjs4 extjs 4如何在JSON字符串中传递函数,extjs4,Extjs4,我正在使用JSON字符串创建门户 差不多 appPortalItems.add({ id: PortletID, collapsed: true, title: PortletTitle, height: PortletHeight, tools: getToolsBar(String), html: htmlContent, listeners: {
appPortalItems.add({
id: PortletID,
collapsed: true,
title: PortletTitle,
height: PortletHeight,
tools: getToolsBar(String),
html: htmlContent,
listeners: {
'close': Ext.bind(panel.onPortletClose, panel),
'endDrag': Ext.bind(panel.onPortletDrag, panel),
'resize': Ext.bind(panel.onPortletResize, panel)
}
});
所以在上面的代码中有一些工具:getToolBar(String)
这里我传递的是字符串,它只不过是JSON
"max": {
"type": "maximize",
"handler": function(e,target,panelHeader,tool){
userMaximize(e,target,panelHeader,tool)
}
}
userMaximize是我的函数,我想在用户单击菜单项时调用它
因此,我没有在函数(e等)中添加“”。。
在Chrome和FF中,它运行良好。但在IE中,它给了我错误
请建议如何将函数作为JSON中的对象传递,以便在菜单项上单击event userMaximize(事件用户最大化)将得到执行?如果您试图使用工具,请编写如下代码
tools:[{
type:'maximize',
tooltip: 'maximize !',
handler: function(event, toolEl, panel){
userMaximize(e,target,panelHeader,tool)// check the parameters passed
}
},
{
type:'help',
tooltip: 'Get Help',
handler: function(event, toolEl, panel){
// show help here
}
}]
通过将函数作为字符串传递,您在尝试什么?我正在尝试使用add函数创建portlet。对于add函数,我将所有portlet属性作为Json传递。但是,当我使用一些Json验证器检查Json时,它会给我错误,但它在Chrome和Mozilla中运行良好。遗憾的是,afaik Json数据结构不允许您传递函数作为值。您可能需要
eval
?但是我如何在JSON中将其作为字符串传递给add函数?