在Sails.js

时间:2017-12-07 15:47:19

标签: javascript sails.js

我目前正在编辑后端页面,但我遇到了一些问题。 在我删除Action之前我需要确认,因为您可以看到我到目前为止尝试了这一点,但我的代码完全跳过confirm()并且只重定向到索引。

请查看下面的控制器代码

delete(req, res, next) {
        Action
                .findOne(req.param('id'))
                .then(({id}) => {
                    confirm('U staat op het punt een actie te verwijderen, klik op "ok" om hier mee door te gaan');
                    if(confirm()=== true) {
                        Action
                            .destroy(id)
                            .then(() => {
                                FlashService.setFlash(req, 'success', 'Action has been deleted')
                                res.redirect('/answer/index')
                            })
                            .catch(err => res.redirect('/answer/index'))
                    }
                })
                .catch(err => res.redirect('/answer/index'))
    }

}

我还尝试console.log查看我的代码在哪里搁浅,但这只会出现此错误:

  

未处理拒绝ReferenceError:未定义确认

修改

我认为它也许可能有用,也许看到HTML所以你去 你可以看到删除是在提交时调用的,也许我做的极其错误,但它似乎除了前面提到的确认之外还有效

<form action="/action/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>

EDIT 2.0

我解决了这个问题,但仍然没有真正为删除它制作了以下javascript它有点基本但不是问题请看看

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

但是,当我转到此页面时,它表示&#34;动作未定义&#34;但我很确定它的定义是诚实的。

我真的不知道我做错了什么,任何帮助都会很好

1 个答案:

答案 0 :(得分:1)

您无法在服务器端使用客户端confirm javascript。它不存在。您应该在向服务器发送请求之前调用confirm。

喜欢这样

<button onclick="delete()">Delete</button>

<script>
function delete() {
var confirm = confirm("Do you want to delete?")
if(confirm){
// Call server
}
}
</script>