javascript - navigationend - Abra una nueva pestaña en el botón haga clic en AngularJS
router events subscribe angular 4 (3)
Deberías usar el servicio $location
Documentos angulares:
<button type="button" class="btn btn-primary" ng-click="openTab()">new tab</button>
openTab = function () {
$http.post(''www.google.com'');
}
Lo que quiero es publicar un requerimiento y abrir el html de respuesta en una nueva pestaña cuando haces clic en el botón "abrirTab". No hay un método para hacer esto con $http
. Creo que esto quizás sea simple, pero no puedo encontrar la manera.
Puedes hacer todo esto dentro de tu controlador usando el servicio $ window here . $ window es un contenedor alrededor de la ventana del objeto del navegador global.
Para que esto funcione, inyecte $ window en su controlador de la siguiente manera
.controller(''exampleCtrl'', [''$scope'', ''$window'',
function($scope, $window) {
$scope.redirectToGoogle = function(){
$window.open(''https://www.google.com'', ''_blank'');
};
}
]);
esto funciona bien cuando se redirigen a rutas dinámicas
Resolví esta pregunta de esta manera.
<a class="btn btn-primary" target="_blank" ng-href="{{url}}" ng-mousedown="openTab()">newTab</a>
$scope.openTab = function() {
$scope.url = ''www.google.com'';
}