Изменить 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';
Другие вопросы по тегам