还有另一种方法可以将对象传递给函数吗?
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>';
在其他情况下做类似的事情(使用适当的引用和转义)。
我有一个从 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>';
在其他情况下做类似的事情(使用适当的引用和转义)。