2012-05-24 5 views
1

JSON 문자열을 사용하여 포털을 만들고 있습니다.extjs 4 JSON 문자열에서 함수를 전달하는 방법

뭔가

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) 
     } 
    }); 

같은 위의 코드에 도구가 : 내가 JSON에 불과하다 문자열을 전달하고 여기에

getToolBar (문자열).

"max": { 
     "type": "maximize", 
     "handler": function(e,target,panelHeader,tool){ 
     userMaximize(e,target,panelHeader,tool) 
     } 
    } 

userMaximize는 내 함수이며, 사용자가 메뉴 항목을 클릭 할 때이 함수를 호출하려고합니다.

그래서 나는 크롬에서 기능 (예, 등 에 ""추가하고 잘 작동 FF. 그러나 IE에서 나에게 오류를주고있다하지 않았습니다.

내가 기능을 전달할 수있는 방법을 제안하십시오 JSON의 객체로 메뉴 항목 클릭 이벤트에 userMaximize는 실행 얻을 수 있도록?

당신이 도구를 사용하려는 경우
+0

같은 일부 코드를 작성? – Jom

+0

포틀릿을 만들려고합니다. 추가 기능. 그리고 추가 기능에 대한 모든 포틀릿 특성을 Json으로 전달하고 있습니다 ..하지만 Json 유효성 검사기를 사용하여 Json을 검사 할 때 오류가 발생하지만 Chrome 및 Mozilla에서 제대로 작동합니다. – Anup

+1

슬프게도 afaik json 데이터 구조는 허용되지 않습니다. 함수를 값으로 전달하십시오. 'eval'이 필요할 수도 있습니다. –

답변

0

, 당신은 문자열로 함수를 전달하여 시도하고있는 무슨이

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 
    } 
}] 
+0

하지만 JSON에서 이것을 추가 함수의 문자열로 어떻게 전달할 수 있습니까? – Anup