change html angularjs login window.location

html - change - ng-href angularjs



$ window.location.href NO FUNCIONA en AngularJS (7)

Estoy construyendo una página básica de inicio de sesión de AngularJS y $ window.location.href no redirigió la página a un nuevo html en mi sistema, alojado por WAMP. Incluso intenté redirigirlo a google. No pasa nada. Intenté todas las soluciones disponibles aquí y nada parece funcionar. Alguna solución?

JS seguido de HTML

var app = angular.module(''myApp'', []); app.controller(''MainCtrl'', function($scope) { $scope.name = ''World''; $scope.submit = function() { if ($scope.username && $scope.password) { var user = $scope.username; var pass = $scope.password; if (pass == "admin" && user == "[email protected]") { alert("Login Successful"); $window.location.href = "http://google.com"; //Re-direction to some page } else if (user != "[email protected]") { alert("Invalid username"); } else if (pass != "admin" && user == "[email protected]") { alert("Invalid password"); } } else { alert("Invalid Login"); } } });

<!DOCTYPE html> <html ng-app="myApp"> <head> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <script src="login.js"></script> <link rel="stylesheet" href="login.css"> </head> <body ng-controller="MainCtrl"> <form> <label>Username:</label> <input type="email" ng-model="username" class="lab1" /> </br> </br> <label></label>Password:</label> <input type="password" ng-model="password" class="lab2"> </br> <button type="submit" ng-click="submit()" class="buttonclass">login</button> </form> </body> </html>


Try this, var homeApp = angular.module(''HomeApp'', []); homeApp.controller(''HomeController'', function ($scope, $http, $window) { $scope.loginname = "Login To Demo App"; $scope.login = function () { var name = $scope.username; var pwd = $scope.password; var req = { method: ''POST'', url: ''../Account/LoginAccount'', headers: { ''Content-Type'': undefined }, params: { username: name, password: pwd } } $http(req).then(function (responce) { var url = ''''; if (responce.data == "True") { url = ''../Account/WelcomePage''; $window.location.href = url; } else { url = ''../Account/Login''; $window.location.href = url; } }, function (responce) { }); } });


Angular tiene su propio controlador de ubicación llamado $location que prefiero usar en la aplicación angular;

app.controller(''MainCtrl'', function($scope, $location) {

inyecte a su controlador y use de la siguiente manera;

$location.path(''http://foo.bar'')


Puede usar $window.location.href en AngularJS

app.controller(''MainCtrl'', function ($scope,$window) { $scope.formData = {}; $scope.submitForm = function (formData){ $window.location.href = "jobs"; }; })


Vale la pena señalar la documentación actual para $location . Específicamente la cita:

¿Cuándo debería usar $ location?

Cada vez que su aplicación necesite reaccionar ante un cambio en la URL actual o si desea cambiar la URL actual en el navegador.

¿Qué no hace?

No causa una recarga de página completa cuando se cambia la URL del navegador. Para volver a cargar la página después de cambiar la URL, use la API de nivel inferior, $ window.location.href.

Si necesita redirigir el navegador a una nueva página, definitivamente se recomienda $ window.location.


Mis dos centavos -

No pude obtener $window.location.href o $location.path para trabajar para navegar desde una página. En la documentación de $location (bajo advertencias ) dice:

El servicio $ location le permite cambiar solo la URL; no te permite volver a cargar la página. Cuando necesite cambiar la URL y volver a cargar la página o navegar a otra página, use una API de nivel inferior, $ window.location.href.

$ ubicación Advertencias

La documentación de $ window es ... deficiente. De todos modos, ninguno de los servicios funcionó para mí en el controlador (aunque $ location.path funciona en mi archivo index.run ).

En este proyecto estoy usando ui-router, por lo que funcionó: $state.go(''state.name''); - donde state.name es la cadena del estado / nombre de la página a la que el usuario quiere ir, es decir, ''index.users''


En js angulares puedes usar $location . Inyectarlo en su controlador:

app.controller(''MainCtrl'', function($scope, $location) { ... }

Y si quieres redirigir a google utiliza su método url() :

$location.url(''http://google.fr'');

también puedes usar el método path() para la URL relativa:

$location.path(''home''); // will redirect you to ''yourDomain.xx/home''

https://docs.angularjs.org/api/ng/service/ $ location


window.location.href = "path name"; return false;