2016-04-01 3 views
1

Привет, я хочу изменить URL-адрес при успешном входе в систему. URL-адрес входа в систему - localhost/filename/login.html , а при успешном URL-адресе - localhost/filename/index.html #/birds_eye. Используем угловые значения 1.3.14. Вот код app.jsизменить URL-адрес на успешном входе в систему angularjs

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)); 
} 

* /}])

Проблема сталкиваюсь с помощью $ расположение является URL не получает обновлен и пробовал использовать windows.location, но проблема с window.location - это объект ответа, который я сохраняю в переменной scope/rootscope, становится нулевым. Пожалуйста, помогите мне

+0

'Services.loginDashboard()' возвращает символом '$ http' обещают? – Malk

+0

Поскольку это SPA, использующий '$ location.path ('/ birds_eye');' все, что вам нужно, чтобы войти в 'localhost/filename/#/birds_eye' после входа. Я немного волнуюсь, потому что вы говорите, что url является «localhost/filename/index.html #/birds_eye'. Вы используете веб-сервер? Где вы это тестируете? Как насчет вашего обслуживания? –

+0

Да, я использую службу, а также веб-сервер. Index.html содержит общую часть страницы, поэтому URL-адрес подобен этому. – Prashanth

ответ

0

С $location документа:

Это не вызывает полную перезагрузку страницы, когда URL браузера изменяется. Чтобы перезагрузить страницу после изменения URL-адреса, используйте API нижнего уровня, $ window.location.href.

так, попробуйте:

$window.location.href = '/birds_eye'; 
+0

, но это изменит login.htm на index.html #/birds_eye? – Prashanth

+0

при использовании $ location все переменные localstorage становятся неопределенными. – Prashanth