未定义Javascript~SailsJs操作

未定义Javascript~SailsJs操作,javascript,sails.js,Javascript,Sails.js,问题 因此,我正在编辑一个crud应用程序,以便在删除之前进行确认,并创建了一个javascript函数来执行此操作,但在我的cmd和“show”页面上出现以下错误 错误:发送500(“服务器错误”)响应:ReferenceError: C:\Users\Micha\Documents\intellite vraagbaak\views\answer\show.ejs:176 174 |如果(c){ 175 | console.log(“完成”); 176 | window.location.h

问题

因此,我正在编辑一个crud应用程序,以便在删除之前进行确认,并创建了一个javascript函数来执行此操作,但在我的cmd和“show”页面上出现以下错误

错误:发送500(“服务器错误”)响应:ReferenceError:
C:\Users\Micha\Documents\intellite vraagbaak\views\answer\show.ejs:176
174 |如果(c){
175 | console.log(“完成”);
176 | window.location.href=“操作/删除/”
177 |}
178 |
179 |其他{

未定义操作

代码

这是应该进行删除的代码的一部分

<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>

函数Delete(){
让c=确认(‘在活动中保持平衡,在门前保持“正常’);
如果(c){
控制台日志(“完成”);
window.location.href=“操作/删除/”
}
否则{
console.log(“失败”)
window.location.href=“/answer/show/”
}
}
我没有得到的

我没有收到这个错误,因为我在整个页面上使用变量操作,没有任何错误。但是当我在函数中使用变量操作时,我收到了一个错误。我做错了什么?任何帮助都会很好(对不起,我的英语不是母语)

编辑 行动从何而来

Action是我所有操作的别名,在
上方的foreach循环中定义


{ %>

@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>
{%>
函数删除(actionId){
让c=确认(‘在活动中保持平衡,在门前保持“正常’);
如果(c){
控制台日志(“完成”);
window.location.href=“action/delete/”+actionId;
}
}

总之,模板在每个
tr
中向
Delete()
方法调用添加操作id,然后脚本使用该id在纯javascript中生成其url(不涉及模板标记).

动作
你在循环中声明的东西还是
..
中的东西?@MjZac我更新了你在
关闭循环的问题。因此
动作
不可用。
<% _.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>