无法在函数中传递对象 Javascript

Not able to pass object in a function Javascript

以下是我的 plnkr,如果我没有向我的 open1 方法传递任何参数,但我需要在 $scope.open1 方法中传递一个对象,但它会抛出错误,它工作正常。

让我知道我做错了什么。

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

我遇到问题的代码 -

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

我正在通过这种方法提醒数据 -

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

编辑 -

图片点击需要传递数据。

您需要 json 您的对象,以便它成为一个字符串供您连接。

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

编辑:如果您的数据包含一些单引号,不确定这是否有效。你可能不得不逃避他们。

特别感谢@Mike'Pomax'Kamermans 我改变了我的数据结构,现在只使用数字,即 data.id ..像这样 -

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

欢迎随时指正。