Javascript durandal.js确认框无法返回是或否

Javascript durandal.js确认框无法返回是或否,javascript,knockout.js,durandal,Javascript,Knockout.js,Durandal,我想在durandal.js中添加comfirmationbox 我写了下面的代码,但它并没有返回是或否 define(['services/logger', 'durandal/plugins/router', 'durandal/app'], function (logger, router, app) { if (app.showMessage('Are you sure you want to delete :' + titlename + '?', 'Delete Confirmat

我想在durandal.js中添加comfirmationbox

我写了下面的代码,但它并没有返回是或否

define(['services/logger', 'durandal/plugins/router', 'durandal/app'], function (logger, router, app) {

if (app.showMessage('Are you sure you want to delete :' + titlename + '?', 'Delete Confirmation', ['Yes', 'No'])) {
                DeleteAchievement(self, obj.Soid)
            }

showMessage方法返回一个承诺,因此您的代码应该如下所示:

app.showMessage('Are you sure you want to delete :' + titlename + '?', 'Delete Confirmation', ['Yes', 'No']).then(function(dialogResult){
    if(dialogResult === "Yes"){
        //Your code
    }
});
您可以在此处获得更多信息:

从它所说的内容,app.showMessage()返回一个承诺,这意味着您必须在承诺得到解决时编写if语句,即(在本例中)当用户单击是或否并且对话框关闭时。你的代码(对我有效)将是

app.showMessage('Are you sure you want to delete :' + titlename + '?', 'Delete Confirmation', ['Yes', 'No']).then(function (dialogResult) {
            if(dialogResult == 'Yes'){
                 //this is called if user clicked yes
            }else{
                 //this is called if user clicked no
            }
        });