2016-04-01 32 views
-1

Bazı değerler ve dizilerle işlevi aktardığım dinamik bir bağlantı oluşturuyorum ancak bu işlev çağrıldığında bu dizi "[object Object]". Ben dizi olarak değil dize olarak benim dizi tutacak Nasıl dizininarray nesnesini javascript işlevine geçirme

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

olarak kalacaktır yoktur. Yanlış yaptığım bir şey. Biri

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

yerine birlikte ezme bir DOM inşa etmeye çalışmakla DOM kullanmayı öğrenin:

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

öneririm ne öğesi ekleyin ve bu elemanın üzerinde clickevent listener yazmaktır HTML dizeleri. – Quentin

+1

Lütfen kaba olma. Bu benim dinamik kod – Milind

+0

yapmak için kullanıyorum kodunun bir parçası değilim kaba değilim. Tekniğiniz hataya meyilli ve aşırı karmaşık. DOM, işleri daha basit hale getirirdi. – Quentin

cevap

1

bir JSON dize olarak geçmek :(

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

bana yardım Ve ayrıştırma sonra işlevi içinde kullanmak Lütfen aşağıdakileri yapın

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

Çözümünüz işe yarıyor ama mdata dize sahip olduğu için JSON.stringify (mdata) .replace (/ \ "/ g, '"') ile çözdüğüm sonlandırılmamış dize için hata veriyordu. Tekrar teşekkürler – Milind

+0

@Milind Yardımdan memnun oldum ! :) –

0

[object Object] alıyorsunuz, bir dizgi birleştirme yapıyorsunuz ve bu dize yeniden Bu nesnenin sunumu:

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

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