Кнопка должна одновременно вызывать метод AngularJS и открывать новую вкладку с данными $ POST

Текущий сценарий в моем приложении заключается в том, что мне нужно заставить кнопку вызывать метод (службу) и одновременно открывать новую вкладку (я создаю PDF из результатов упомянутой службы).

На данный момент я делаю это так:

// the method that is called
$scope.open = function(){
CombineDataFactory.sendData('generatePlan.php');
$window.open('/generatePlan.php', '_blank');
}// updated as per a suggestion in comments
CombineDataFactory.sendData('generatePlan.php')
.then(
function(data){
$window.open('/generatePlan.php', '_blank');
},
function(error){
alert(error);
}
);

Основная проблема заключается в том, что вторая строка (открытие вкладки) считается новым запросом и не содержит никаких данных поста, которые мне, очевидно, нужны, иначе мой PDF не получит данные для работы.

До сих пор я пытался сохранить сообщение в сеансе PHP, но он не работает должным образом, я получаю старые значения сеанса.

if( isset($_POST) && !empty($_POST) && $_POST != ''){
$_SESSION['postdata'] = $_POST['data'];
}else{
$_SESSION['postdata'] = $_SESSION['postdata'];
}

Я могу подтвердить во время вызова службы правильные значения отправляются (я проверил через консоль).

Как вы думаете, небольшая задержка в открытии вкладок поможет?

0

Решение

«Достаточно длительная» задержка открытия вкладки поможет, но это не очень хороший способ сделать это. Вы должны использовать $ window.open как Перезвоните для sendData и открывайте вкладку только после того, как сервис завершит свою работу.

0

Другие решения

Других решений пока нет …