2012-10-29 66 views
0

我正在做一個嵌套函數調用,但同時我需要將該變量傳遞給嵌套函數,我可以做到這一點。這裏就是我試圖這樣做如何從嵌套函數調用傳遞變量

allSourceEndpoints.push(jsPlumb.addEndpoint(toId, sourceEndpoint(index), { anchor:sourceAnchors[i], uuid:sourceUUID })); 


sourceEndpoint(index) = { 
      endpoint:"Dot", 

      paintStyle:{ fillStyle:"#225588",radius:3 }, 
      isSource:true, 
      isTarget:true, 
      maxConnections:-1, 
     // connector:[ "Flowchart", { stub:[40, 60], gap:10 } ], 
     // connector:[ "Flowchart"], 

      hoverPaintStyle:connectorHoverStyle, 
      connectorHoverStyle:connectorHoverStyle, 
      dragOptions:{}, 
      overlays:[ 
       [ "Label", { 
        location:[0.5, 1.5], 
        label:""+startEnd[index].start, 
        cssClass:"endpointSourceLabel", 
       } ] 
      ] 
     } 

上面的代碼不會因爲

 index 

路過,我現在做的工作。我需要這個,因爲我需要找出開始。如果我刪除該索引參考和行

  label:""+startEnd[index].start, 

它工作正常,但我真的需要包括。有沒有辦法做到這一點??

非常感謝您的幫助!

回答

3

將sourceEndPoint構造更改爲函數並返回JSON對象作爲返回值。 即:

sourceEndpoint = function(index) { 

    return { 
      endpoint:"Dot", 

      paintStyle:{ fillStyle:"#225588",radius:3 }, 
      isSource:true, 
      isTarget:true, 
      maxConnections:-1, 
     // connector:[ "Flowchart", { stub:[40, 60], gap:10 } ], 
     // connector:[ "Flowchart"], 

      hoverPaintStyle:connectorHoverStyle, 
      connectorHoverStyle:connectorHoverStyle, 
      dragOptions:{}, 
      overlays:[ 
       [ "Label", { 
        location:[0.5, 1.5], 
        label:""+startEnd[index].start, 
        cssClass:"endpointSourceLabel", 
       } ] 
      ] 
     }; 
    } 
+0

+1 - 我在想同樣的事情是錯的。必須有一個函數才能像這樣傳遞一個變量。普通對象'{}'不會以問題中定義的方式接受參數。 –

+0

@Chandu:這確實有用。但是整個調用都在for循環中。我不知道爲什麼它不會調用最後一個值的函數。任何想法爲什麼發生這種情況?謝謝 –

+0

@unix_user:你能發佈整個上下文的源代碼嗎?也許一個JSFiddle會更好 – Chandu