open new descargar javascript angularjs

javascript - new - angularjs documentation



Abrir enlaces en una nueva ventana usando AngularJS (7)

Aquí hay una directiva que agregará target="_blank" a todas las etiquetas <a> con un atributo href . Eso significa que todos abrirán en una nueva ventana. Recuerde que las directivas se utilizan en Angular para cualquier manipulación / comportamiento dom. Demostración en vivo (click).

app.directive(''href'', function() { return { compile: function(element) { element.attr(''target'', ''_blank''); } }; });

Aquí está el mismo concepto hecho menos invasivo (por lo que no afectará a todos los enlaces) y más adaptable. Puede usarlo en un elemento primario para que afecte a todos los enlaces secundarios. Demostración en vivo (click).

app.directive(''targetBlank'', function() { return { compile: function(element) { var elems = (element.prop("tagName") === ''A'') ? element : element.find(''a''); elems.attr("target", "_blank"); } }; });

Vieja respuesta

Parece que usaría "target="_blank" en su etiqueta <a> . Aquí hay dos maneras de hacerlo:

<a href="//facebook.com" target="_blank">Facebook</a> <button ng-click="foo()">Facebook</button>

JavaScript:

var app = angular.module(''myApp'', []); app.controller(''myCtrl'', function($scope, $window) { $scope.foo = function() { $window.open(''//facebook.com''); }; });

Demostración en vivo aquí (click).

Aquí están los documentos para $window : http://docs.angularjs.org/api/ng.$window

Podrías usar window , pero es mejor usar la inyección de dependencia, pasando $window angular para fines de prueba.

¿Hay alguna manera de decirle a AngularJS que quiero que los enlaces se abran en ventanas nuevas cuando el usuario hace clic en ellos?

Con jQuery, haría esto:

jQuery("a.openInNewWindow").click( function() { window.open(this.href); return false; })

¿Hay un equivalente con AngularJS?


Escribí una pequeña idea que creo que puede ser muy útil para cualquiera que busque una solución a ese problema: enlace externo

Lo que hace es agregar atributos target="_blank" para anclar elementos que se vincularían a un dominio diferente al actual. Puedes aplicarle un parche a lo que mejor le parezca.


Esto funciona para mi. Inyecte el servicio $window en su controlador.

$window.open("somepath/", "_blank")


He revisado muchos enlaces, pero esta respuesta me ayudó mucho:

$scope.redirectPage = function (data) { $window.open(data, "popup", "width=1000,height=700,left=300,top=200"); };

** los datos serán la URL absoluta a la que está llegando.


Las directivas @ m59 funcionarán para ng-bind-html, solo tiene que esperar a que $viewContentLoaded termine

app.directive(''targetBlank'', function($timeout) { return function($scope, element) { $scope.initializeTarget = function() { return $scope.$on(''$viewContentLoaded'', $timeout(function() { var elems; elems = element.prop(''tagName'') === ''A'' ? element : element.find(''a''); elems.attr(''target'', ''_blank''); })); }; return $scope.initializeTarget(); }; });


este es el código de tu botón

<a href="AddNewUserAdmin" class="btn btn-info " ng-click="showaddnewuserpage()"> <span class="glyphicon glyphicon-plus-sign"></span> Add User</a>

en el controlador simplemente agrega esta función.

var app = angular.module(''userAPP'', []); app.controller(''useraddcontroller'', function ($scope, $http, $window) { $scope.showaddnewuserpage = function () { $window.location.href = (''/AddNewUserAdmin''); } });


puedes usar:

$window.open(url, windowName, attributes);