2016-04-01 12 views
-1

Ich erstelle dynamische Verbindung, wo ich Funktion mit einigen Werten und Array übergeben, aber wenn diese Funktion aufgerufen wird, dass Array String wie "[Objekt Objekt]". Es bleiben nicht als ArrayÜbergabe Array-Objekt an Javascript-Funktion

Javascript Code

var mdata = {}; 
      mdata.itemId = data.d.ID.toString(); 
      mdata.sucessMsg = "Gate Pass detail document is uploaded successfully."; 
      mdata.errorMsg = "Gate Pass detail document uploading cancel"; 
      tdUplDoc.html("<a id='uplDoc' href='#' onclick=\"javascript:openBasicDialog('UploadDocument.aspx','Upload CivilID or Passport Copy','" + mdata + "');\">Upload Documents</a>"); 

calling function

function openBasicDialog(tUrl, tTitle, tdata) { 
    var options = { 
     url: tUrl, 
     title: tTitle, 
     args: tdata, 
     dialogReturnValueCallback: onPopUpCloseCallBackWithData 
    }; 
    SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options); 
    return false; 
} 

Wie ich als Array meine Array halten wird nicht als String. Etwas, was ich falsch mache. Bitte jemand mir helfen :(

+0

Lernen DOM zu verwenden, anstatt zu versuchen, eine DOM aufzubauen, indem zusammen Maischen Zeichenketten von HTML. – Quentin

+1

Bitte nicht unhöflich sein. das ist der Teil meines Codes, die ich – Milind

+0

dynamische Tabelle zu machen, verwende ich bin nicht unhöflich. Ihre Technik ist fehleranfällig und übermäßig kompliziert. DOM würde die Dinge viel einfacher machen. – Quentin

Antwort

1

Direkt als JSON-String,

"'..,'" + JSON.stringify(mdata) + "');\">Upload Documents</a>"); 

Und es nach dem Parsen innerhalb der Funktion verwenden,

function openBasicDialog(tUrl, tTitle, tdata) { 
    var options = { 
     url: tUrl, 
     title: tTitle, 
     args: JSON.parse(tdata), //parse it here 
     dialogReturnValueCallback: onPopUpCloseCallBackWithData 
    }; 
+0

Ihre Lösung funktioniert aber als mdata String hatte es wurde Fehler für abgebrochene Zeichenfolge zu geben, die ich von JSON.stringify (mdata) .replace lösen (/ \ "/ g,‚"‘) Danke wieder – Milind

+0

@Milind Glad zu helfen ! :) –

0

Das wird nicht funktionieren Sie wie folgt vor

var a = document.createElement('a'); 
a.id = 'uplDoc'; 
a.href='#'; 
a.addEventListener('click', function(){ 
    openBasicDialog('UploadDocument.asp', 'Upload CivilID or Passport Copy', mdata); 
} 
tdUplDoc.appendChild(a); 
0

Sie erhalten [object Object], weil Sie eine String-Verkettung tun, und das ist die Zeichenfolge re Präsentation des Objekts:

"<a id='uplDoc' href='#' onclick=\"javascript:openBasicDialog('UploadDocument.aspx','Upload CivilID or Passport Copy','" + mdata + "');\" 

Was ich möchte, ist vorschlagen, das Element hinzuzufügen und ein clickevent listener auf dieses Element schreiben:

tdUplDoc.html("<a id='uplDoc' href='#'>Upload Documents</a>"); 

document.getElementById('uplDoc').addEventListener('click', function(){ 
    openBasicDialog('UploadDocument.asp', 'Upload CivilID or Passport Copy', mdata); 
}); 
Verwandte Themen