Javascript durandal.js确认框无法返回是或否
我想在durandal.js中添加comfirmationbox 我写了下面的代码,但它并没有返回是或否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
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
}
});