多个甜蜜警报始终执行第一个确认回调

时间:2016-02-16 15:22:42

标签: javascript meteor sweetalert

当我在同一页面中使用多个甜蜜警报时,它始终会调用第一个回调。

我解释说:

我有一个发送好友请求的按钮,该请求成为"待定/取消"点击后按钮

{{#if addFriend}}
    <li>{{> addFriendBtn user=usr}}</li>
{{/if}}
{{#if pending}}
    <li>{{> pendingFriendBtn user=usr}}</li>
{{/if}}

每个btn都有一个调用甜蜜警报的点击事件:

Template.addFriendBtn.events({
'click .add-friend': function (evt,tpl) {
        console.log('inside click .add-friend...');
        const options = {
            title: "Friend request",
            showCancelButton: true,
            confirmButtonText: "Oui",
            closeOnConfirm: true,
            closeOnCancel:true,
            allowOutsideClick: false,
            allowEscapeKey:true
        };

        swal(options, function () {
           console.log("Inside add-friend confirmation swal...");
           Meteor.call('sendFriendRequest', tpl.data.user);
        });
   }
}); 

Template.pendingFriendBtn.events({
    'click .cancel-request': function (evt, tpl) {
        console.log('inside click .cancel-request');
        const options = {
                    title: "Confirmation",
                    showCancelButton: true,
                    closeOnConfirm: true,
                    closeOnCancel:true,
                    allowOutsideClick: false,
                    allowEscapeKey:true
                };

        swal(options, function(){
           console.log("inside cancel-request confirmation swal...");
           Meteor.call('cancelFriendRequest', tpl.data.user);
         });

    }
});

Meteor.methods({
  sendFriendRequest: function (recipient) {
    console.log('Inside sendFriendRequest...');
    ...
  },

  cancelFriendRequest: function (recipient) {
    console.log('Inside cancelFriendRequest ...');
    ....
  }
});

当我点击&#34;添加朋友&#34;按钮第一次,它工作正常。我得到了甜蜜的警报,确认后,我的回调正确完成,按钮变为&#34;待定/取消&#34;按钮。

当我在此之后点击&#34;待定/取消&#34;按钮取消我的朋友请求,我得到正确的甜蜜警报,但当我确认时,它执行回调&#34; sendFriendRequest&#34;对于第一个按钮&#34;添加朋友&#34;。

我无法弄清楚它为什么会这样......对这个问题有什么看法?提前致谢。

更新:添加日志后

首先点击:添加好友:

客户日志:

在内部点击.add-friend ...

内部添加好友确认swal ...

服务器日志:

在sendFriendRequest内...

第二次点击:取消待处理的请求:

客户端日志

内部点击.cancel-request

内部添加好友确认swal ...

服务器日志:

在sendFriendRequest内...

1 个答案:

答案 0 :(得分:2)

在你的swal配置中设置closeOnConfirm:false。