在angularjs ngDialog.openConfirm对话框出现在整个函数执行后

Shb*_*Shb 4 javascript angularjs

在angularjs中,我想在删除操作上显示确认对话框,我的代码如下:

function deleteOperation(){
    var result;        
             ngDialog.openConfirm({
                    template:
                        '<p>Are you sure you want to delete selected conversation(s) ?</p>' +
                        '<div>' +
                          '<button type="button" class="btn btn-default" ng-click="closeThisDialog(0)">No&nbsp;' +
                          '<button type="button" class="btn btn-primary" ng-click="confirm(1)">Yes' +
                        '</button></div>',
                    plain: true,
                    className: 'ngdialog-theme-default'
                }).then(function (value) {
                    result=true;
                }, function (value) {
                    result=false;
                });

            if (result == true) {
                // perform delete operation
 }
}
Run Code Online (Sandbox Code Playgroud)

但是在整个函数执行后会显示对话框,因此如果条件结果变量得到未定义的值

Pie*_*ler 9

回调是异步的.所以,你必须在成功回调中执行你的操作,如下所示:

function deleteOperation(){     
             ngDialog.openConfirm({
                    template:
                        '<p>Are you sure you want to delete selected conversation(s) ?</p>' +
                        '<div>' +
                          '<button type="button" class="btn btn-default" ng-click="closeThisDialog(0)">No&nbsp;' +
                          '<button type="button" class="btn btn-primary" ng-click="confirm(1)">Yes' +
                        '</button></div>',
                    plain: true,
                    className: 'ngdialog-theme-default'
                }).then(function (value) {
                    // perform delete operation
                }, function (value) {
                    //Do something 
                });
    }
Run Code Online (Sandbox Code Playgroud)