Когда я использую несколько приятных предупреждений на одной странице, он всегда вызывает первый обратный вызов.
Я объясняю:
У меня есть кнопка для отправки запроса на добавление в друзья, которая становится кнопкой «ожидание/отмена» после нажатия
{{#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» для первой кнопки «добавить друга».
Я не мог понять, почему он так себя ведет... Есть мысли по этому поводу? Заранее спасибо.
ОБНОВЛЕНИЕ: после добавления журналов
Первый клик: добавить друга:
Журналы клиента:
внутри нажмите .add-friend…
Внутри галочка подтверждения добавления друга…
Журналы сервера:
Внутри sendFriendRequest...
Второй щелчок: отменить ожидающий запрос:
Журналы клиентов
внутри нажмите .cancel-request
Внутри галочка подтверждения добавления друга…
Журналы сервера:
Внутри sendFriendRequest...