2015-10-12 21 views
0

以下是我的plnkr,它工作正常如果我沒有將任何參數傳遞給我的open1方法,但我需要傳遞$scope.open1方法中的對象,但它會引發錯誤。無法在函數中傳遞對象Javascript

讓我知道我做錯了什麼。

Plnkr - http://plnkr.co/edit/dzYfy1qtmBD3ng804nXR?p=preview

代碼,我現在面臨的問題 -

$scope.open1 = function(data) { 
    alert(data); 
    }; 

編輯 - -

數據需要

function imageHtml(data, type, full, meta) { 
    // Error here 
    var testData = {"key1": "val1", "key2": "val2"}; 
     return '<img src="'+data+'" ng-click="open1('+testData+')" />'; 
    } 

我通過這種方法將告警數據傳遞圖像點擊。

+1

重要的開發注意:**從不**構建,然後使用字符串設置HTML。現在不是1998年,我們多次瞭解到,這是一件非常糟糕甚至是危險的事情。相反,創建一個圖像元素(使用document.createElement),設置其屬性(使用setAttribute),然後返回該DOM節點,以便將其插入到需要的位置。不要建立字符串。 –

+2

這是一個荒謬的聲明@ Mike'Pomax'Kamermans ..你覺得'$ templateCache'會怎麼樣? – charlietfl

+1

@ Mike'Pomax'Kamermans它是如何角度的數據表操作單元格數據http://l-lin.github.io/angular-datatables/#/bindAngularDirective –

回答

1

你需要json你的對象,所以它成爲一個字符串供你連接。

return '<img src="'+data+'" ng-click=\'open1('+JSON.stringify(testData)+')\' />';

編輯:不知道,如果你的數據包含一些單引號這會工作。你可能不得不逃脫它們。

+0

即使這樣也會引發錯誤。 ..不工作 –

+0

適合我的工作http://plnkr.co/edit/KW4IkLdoijqRDnK83VqK?p=preview – Icycool

0

特別感謝@ Mike'Pomax'Kamermans我改變了我的數據結構,現在只能使用數字,即data.id ..something這樣的 -

function imageHtml(data, type, full, meta) { 
    var dataId = parseInt(data.listId); 
    return '<img src="'+data.ImageThumb+'" ng-click="open1('+dataId+')" />'; 
} 

歡迎隨時指正。

相關問題