2016-02-16 1 views
1

Когда я использую несколько сладостных предупреждений на одной странице, он всегда вызывает первый обратный вызов.Несколько сладких предупреждений выполняют всегда первый обратный вызов подтверждения

Объясняет:

У меня есть кнопка, чтобы отправить запрос друга, который становится «до/отменить» кнопка после нажмите

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

Каждого БТН имеет событие щелчка вызывая сладкое предупреждение:

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 ...'); 
    .... 
    } 
}); 

Когда я нажимаю кнопку «Добавить друга» в первый раз, он отлично работает. Я получаю сладкое предупреждение и после подтверждения мой обратный вызов выполняется правильно, и кнопка становится кнопкой «Ожидание/Отмена».

Когда я нажимаю кнопку «Отложенное/Отмена», чтобы отменить мой запрос друга, я получаю правильное сладкое предупреждение, но когда я подтверждаю, он выполняет обратный вызов «sendFriendRequest» для первой кнопки «добавить друга», ,

Я не мог понять, почему так ведет себя ... Любые мысли по этому вопросу? Заранее спасибо.

UPDATE: После добавления журналов

Первый щелчок: добавить друга:

Клиентские журналы:

внутри нажмите .Добавьте-друга ...

Внутри адд подтверждение друга swal ...

журналы сервера:

Внутри sendFriendRequest ...

Второй щелчок: отменить ожидающий запрос:

Клиентские журналы

внутри клик .cancel-запрос

Внутреннее подтверждение друга swal ...

сервера журналы:

Внутри sendFriendRequest ...

+0

Добавить несколько консольных журналов: сначала в вашем событии .add-friend, затем в вашем событии .cancel-request, третьем в вашем обратном вызове sendFriendRequest и последним в вашем обратном вызове cancelFriendRequest. Убедитесь, что правильная кодировка фактически выполняется. –

+0

Я добавил журналы, как вы предложили (вопрос отредактирован), и получите следующий результат: ** Первый щелчок: добавить друга: ** _Client logs: _ внутри клика.надстройку друг ... Внутри дополнения друг подтверждение swal ... _SERVER журналы: _ Внутри sendFriendRequest ... ** Второй щелчок: отменить ожидающий запрос: ** _client logs_ внутри мыши .cancel-запроса Inside Подтверждение друга swal ... _Server logs: _ Внутри sendFriendRequest ... –

+0

Привет, вы когда-нибудь разрешили эту проблему? Если да, то как? У меня такая же проблема. – ickyrr

ответ

0

Просто установите closeOnConfirm ложь в вашей swal конфигурации.