Изменить URL при успешном входе в angularjs
Привет, я хочу изменить URL при успешном входе в систему. URL-адрес для входа - localhost/filename/ login.html, а в случае успешного завершения URL-адрес - localhost/filename/ index.html#/birds_eye. Использую angularjs 1.3.14. Вот код app.js
var app = angular.module('cirqSignUp',
['cirq.controllers','cirq.services','ngRoute','ngStorage'])
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/login',{templateUrl: '/login.html', controller: 'login'})
.when('/birds_eye', {templateUrl: 'pages/birds_eye_view.html', controller: 'birdsEye',reloadOnSearch: false})
//.when('/analytics', {templateUrl: 'pages/analytics.html', controller: 'birdsEye'})
//.when('/items', {templateUrl: 'pages/listitems.html', controller: 'birdsEye'})
.when('/items/import_export', {templateUrl: 'pages/items/import_export.html', controller: 'importExport'})
.when('/items/categories', {templateUrl: 'pages/items/categories.html', controller: 'forCategory'})
//.otherwise({redirectTo: '/birds_eye'});
}])
и вот код контроллера
.controller('login', ['$scope','$http','Services','$rootScope','$localStorage', '$sessionStorage','$location', function($scope,$http,Services,$rootScope,$localStorage, $sessionStorage,$location){
$('.error').hide();
$scope.loginRest = function(restLogin){
//
//alert(JSON.stringify(restLogin));
var request = Services.loginDashboard(restLogin);
request.success(function(res,status,headers,config){
alert(status);
//return
$localStorage.resDataRest = res.useremailid;
$localStorage.resTotalSales = res.dashBoard.todayssales;
$localStorage.resTotalTransct = res.dashBoard.todaystransactions;
console.log(JSON.stringify($rootScope.resDataRest));
$location.path('/birds_eye');
//afterLogin(res.useremailid);
//console.log($rootScope.resDataRest)
}).error(function(res,status,headers,config){
$scope.resMsg = res.responsemessage;
$('.error').show();
//alert(status);
});
};
//$rootScope.resDataRest = $scope.getVar;
/*function afterLogin(res){
$scope.data1 = res;
//$rootScope.afterLoginData = $scope.data1;
alert(JSON.stringify($scope.data1));
}
*/}])
Проблема, с которой я сталкиваюсь при использовании $location, заключается в том, что URL-адрес не обновляется и не пытался использовать windows.location, но проблема с window.location заключается в том, что объект ответа, который я сохраняю в переменной scope / rootscope, получает значение null. пожалуйста, помогите мне
1 ответ
Из документа $ location:
Это не приводит к полной перезагрузке страницы при изменении URL браузера. Чтобы перезагрузить страницу после изменения URL, используйте API более низкого уровня, $window.location.href.
так что постарайтесь:
$window.location.href = '/birds_eye';