2017-06-02 7 views
0

私はAngularJSのバージョン1.6.4を使用した初心者です。今私は戻ってきていますが、ページはさわやかではありません。どのように私は1行のコードでそれを行うことができますどのようなアイデア。

ユーザーlogin.component.js:

(function() { 
    "use strict"; 

    var module = angular.module(__appName); 

    function controller(authService, $window, $location, $document) { 
     var model = this; 

     model.$onInit = function() { 
      //TODO: 
     }; 

     model.login = function() { 
      authService.login(model.email, model.password).then(function (response) { 
       //$window.history.back(); 
       //$window.history.go(-1); 
       //$window.location.href = '/'; 


       console.log("url:"+$document.referrer); 
       //$document.referrer is showing undefined in console 
       $location.replace($document.referrer); 

      }, 
      function (response) { 
       model.msg = response.error; 
      }); 
     } 
    } 

    module.component("userLogin", { 
     templateUrl: "components/user-login/user-login.template.html", 
     bindings: { 
      email: "<", 
      password: "<" 
     }, 
     controllerAs: "model", 
     controller: ["authService", "$window", "$location", "$document" controller] 
    }); 
}()); 

App.js:

"use strict"; 

//Global variables 
var __apiRoot = "http://localhost:8000/api"; //No slash '/' at the end 


var module = angular.module(__appName, [ 
    "ui.router", 
    "angular-jwt" 
]); 

module.config(function ($stateProvider, $urlRouterProvider, $httpProvider, jwtOptionsProvider) { 

    $urlRouterProvider.otherwise('/app/home'); 

    $stateProvider 

     .state("app", { 
      abstract: true, 
      url: "/app", 
      component: "appRouting" 
     }) 

     .state("app.home", { 
      url: "/home", 
      component: "homeRouting" 
     }) 

     .state("app.search", { 
      url: "/search/:q", 
      component: "searchRouting" 
     }); 

    jwtOptionsProvider.config({ 
     tokenGetter: ['authService', function (authService) { 
      return authService.getToken(); 
     }], 
     whiteListedDomains: ['localhost'] 
    }); 

    $httpProvider.interceptors.push('jwtInterceptor'); 
}); 

答えて

1

あなたは、角-UI-ルータを使用し、使用後、以前の状態の名前を持っている場合:

$state.go('previousState', {}, { reload: true }); 

あなたが以前の状態の名前を持っていない場合、あなたは、コードのこの部分を使用することができます状態の変更が発生するたびに実行されます。

$rootScope.previousState; 
$rootScope.currentState; 
$rootScope.$on('$stateChangeSuccess', function(ev, to, toParams, from,fromParams) { 
    $rootScope.previousState = from.name; 
    $rootScope.currentState = to.name; 
    console.log('Previous state:'+$rootScope.previousState) 
    console.log('Current state:'+$rootScope.currentState) 
}); 
+0

あなたはこのコードを私が初心者であるとして追加する方法を教えてください。 – MTA

+0

自分の投稿にもファイルのapp.jsコードを追加しました。 – MTA

0

あなたは、単にネイティブJavaScriptを使用してページを更新することができます。 window.location.reload()

+0

現在のページのみをリロードします。私が望むのは、前のページをリロードすることです。 – MTA

+0

最初にそれを前のページにリダイレクトし、次にページリロードを行います –

+1

は 'location.replace()'を使います。 document.referrerを使用して、あなたが来た場所の前のURLを得ることができます。 'location.replace(document.referrer)'; – Kasiriveni

0

$location.replace()を使用してください。 $ document.referrerを使用して、あなたが来た場所の前のURLを取得できます。 $location.replace($document.referrer)

+0

$ document.referrerがコンソールで未定義を示しています。そして、私のコードはどこにでもリダイレクトされていないので、そこにはまってしまいます。 – MTA

+0

私は$ location.replaceをやっていることを示すために投稿を更新しました – MTA