2

durandal.jsにcomfirmationboxを追加したい

コードに次のように書きましたが、YesまたはNOが返されません

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)
            }
4

2 に答える 2

5

showMessage メソッドは promise を返すため、コードは次のようになります。

app.showMessage('Are you sure you want to delete :' + titlename + '?', 'Delete Confirmation', ['Yes', 'No']).then(function(dialogResult){
    if(dialogResult === "Yes"){
        //Your code
    }
});

ここで詳細情報を取得できます: http://durandaljs.com/documentation/Showing-Message-Boxes-And-Modals/

于 2013-08-29T10:08:44.210 に答える
1

ここで言うことから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
            }
        });
于 2013-08-29T10:12:27.247 に答える