Я новичок в разработке внешнего интерфейса / AngularJS и прочитал (но не совсем понял) много вопросов о переполнении стека и другую документацию о ng-resource / $resource и обещаниях. У меня какая-то странная ситуация.
У меня есть этот код в функции отправки, когда пользователь нажимает кнопку для отправки формы.
var Resource = $resource("/urlHere",{},{save: {method:'POST', isArray:true}});
Resource.save(JSON.stringify($scope.validQuery)).$promise.then(function(data) {
$scope.initialResults=data;
if($scope.initialResults.length === 0){
alert("No Results Found!");
}else if($scope.initialResults.length === 1){
window.data = $scope.initialResults;
window.open('/detailedResults');
}else if($scope.initialResults.length > 1){
window.data = $scope.initialResults;
var popupWindowResults = window.open('/resultsGrid');
}
});
Мне нужно открыть определенную вкладку в зависимости от того, сколько результатов я получу. (В основном показать сетку с несколькими результатами на выбор или просто показать один результат, если возвращается только 1) Использование window.open работает нормально, если оно не содержится в $promise.then. В $promise.then браузеры рассматривают его как всплывающее окно, а не как новую вкладку в результате того, что пользователь что-то щелкнул.
Есть ли способ просто остановить выполнение до тех пор, пока не будут возвращены результаты, чтобы я мог открыть вкладку за пределами $promise.then и в функции отправки? Любое решение будет чрезвычайно полезным.