还有另一种方法可以将对象传递给函数吗?

Is there another way to pass an object to a function?

我有一个从 API 请求数据的数据表。我得到一个名为 full 的对象,它包含数据库中的所有变量。我可以毫无问题地访问整数,并在单击按钮时从函数传递它们,但是字符串带来了一个错误,说 Uncaught SyntaxError: missing ) after argument

<script>
$(document).ready(function () {
$("#datatable").DataTable({
        "processing": true,
        "serverSide": true,
        "filter": true,
        "ajax": {
            "url": '@TempData["api"]api/Versioning/Review',
            headers: {
                'Authorization': 'Bearer @HttpContextAccessor.HttpContext.Session.GetString("token")'
            },
            "type": "GET",
        },
        "columnDefs": [{
            "targets": [0],
            "visible": false,
            "searchable": false
        }],
        "columns": [
            { "data": "name", "name": "Name", "autoWidth": true },
            { "data": "name", "name": "Name", "autoWidth": true },
            {
                data: "created_at",
                "render": function (value) {
                    if (value === null) return "";
                    return moment(value).format('DD/MM/YYYY');
                }
            },
            {
                "render": function (data, type, full, meta) {
                    return '<button onclick="changes('+full.changes+')" class="btn btn-info"><i class="fas fa-info-circle"></i> Changes</button>';
                }
            },
            {
                "render": function (data, type, full, meta) {
                    return "<button id='remove' onclick='approve("+full+")' class='btn btn-success'><i class='fas fa-check-circle'></i> Accept Version</button>";
                }
            },
            {
                "render": function (data, type, full, meta) {
                    return "<button id='deny' onclick='deny(" + full.id + ")' class='btn btn-danger'><i class='fas fa-minus-circle'></i> " + full.changes + "</button>";
                }
            },

        ]
    });
});

<script/>

上面我正在请求数据,但我无法在我的函数中收到 full.changes,我什至无法记录它。但是当我传入一个 ID 时,它可以正常工作,我可以记录它。我还尝试传入完整对象 full,然后在我的函数中访问它,如 full.changes 但仍然无法正常工作。下面是我的函数

    <script>
    function changes(changes) {
        console.log(changes)

}
</script>

基本上我想要的是记录名为 changes 的变量,它位于 full 对象中,但到目前为止没有成功。有人知道我怎么能通过吗?

您应该在 HTML 中为字符串文字加上引号。他们失踪了。

所以替换这个:

return '<button onclick="changes('+full.changes+')" class="btn btn-info"><i class="fas fa-info-circle"></i> Changes</button>';

return '<button onclick="changes(\''+full.changes+'\')" class="btn btn-info"><i class="fas fa-info-circle"></i> Changes</button>';

在其他情况下做类似的事情(使用适当的引用和转义)。