gpt4 book ai didi

Javascript ~ SailsJs 操作未定义

转载 作者:行者123 更新时间:2023-12-03 02:53:09 27 4
gpt4 key购买 nike

问题

所以我正在编辑一个 CRUD 应用程序以在删除之前进行确认,并创建了一个 JavaScript 函数来执行此操作,但我在 cmd 和“显示”页面上收到以下错误

error: Sending 500 ("Server Error") response: ReferenceError:
C:\Users\Micha\Documents\intelligente-vraagbaak\views\answer\show.ejs:176
174| if (c){
175| console.log("done");
176| window.location.href = "action/delete/<%=action.id %>"
177| }
178|
179| else{

action is not defined

代码

这是应该发生删除的代码的一部分,

<td class="actions" style="display: block; margin: 0 auto">
<a href="/actionbrand/create/<%= action.id %>"
class="btn btn-sm btn-icon btn-pure btn-default on-default"
data-toggle="tooltip"
data-original-title="Toevoegen"><i class="icon wb-plus" aria-hidden="true"></i></a>
<a href="/action/show/<%= action.id %>"
class="btn btn-sm btn-icon btn-pure btn-default on-editing"
data-toggle="tooltip"
data-original-title="Bekijk"><i class="icon wb-eye" aria-hidden="true"></i></a>
<a href="/action/edit/<%= action.id %>"
class="btn btn-sm btn-icon btn-pure btn-default on-default"
data-toggle="tooltip"
data-original-title="Bewerk"><i class="icon wb-edit" aria-hidden="true"></i></a>
<form id="deleteAction" action="javascript:Delete()" method="POST">
<button type="submit"
class="btn btn-sm btn-icon btn-pure btn-default on-default"
data-toggle="tooltip"
data-original-title="Verwijder"><i class="icon wb-trash" aria-hidden="true"></i>
</button>
</form>
</td>
</tr>
<% }) %>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
function Delete(){
let c = confirm('U staat op het punt een actie te verwijderen, klik op "ok" om hier mee door te gaan');
if (c){
console.log("done");
window.location.href = "action/delete/<%=action.id %>"
}

else{
console.log("failed")
window.location.href = "/answer/show/<%= answer.id %>"
}
}
</script>

我没有得到什么

我没有收到此错误,因为我在整个页面上使用变量操作,并且没有任何错误,但是当我在函数中使用它时,我收到错误。我究竟做错了什么?任何帮助都会很好(抱歉我的英语我不是母语人士)

编辑

“行动”从何而来

Action 是我所有操作的别名,在 <tr><td>...</td></tr> 上方的 foreach 循环中定义。

 <%- answer.actions.length === 0 ? "<tr><td>No results</td></tr>" : null %>
<% _.each(answer.actions, action => { %>

最佳答案

@mjZac 在他的评论中是正确的 - action 仅在循环内部定义,因此在循环外部未定义。

您需要的是将操作(或只是 action.id)信息传递给您的方法。按照您的设置方式,我认为您只需将其作为参数添加到方法调用中即可做到这一点。

<% _.each(answer.actions, action => { %>
<td class="actions" style="display: block; margin: 0 auto">
<!-- some other stuff... -->
<form class="deleteAction" action="javascript:Delete(<%= action.id %>)" method="POST">
<button type="submit" class="btn btn-sm btn-icon btn-pure btn-default on-default" data-toggle="tooltip" data-original-title="Verwijder"><i class="icon wb-trash" aria-hidden="true"></i></button>
</form>
</td>
<% }) %>

<script>
function Delete(actionId){
let c = confirm('U staat op het punt een actie te verwijderen, klik op "ok" om hier mee door te gaan');
if (c){
console.log("done");
window.location.href = "action/delete/" + actionId;
}
}
</script>

总而言之,模板将操作 id 添加到每个 tr 中的 Delete() 方法调用中,然后脚本使用该 id 以纯格式生成其 url javascript(不涉及模板标签)。

关于Javascript ~ SailsJs 操作未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47751678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com