2016-10-24 6 views
0

Angular 1.5 component routingを実装しました。ユーザーがブラウザをクリックまたはキーボードでリフレッシュするときに解決策を探していますF5ユーザーを最初のページにリダイレクトし、入力/選択されたすべてのデータをリセットする必要があります。角度1.5コンポーネントルーティングでブラウザのリフレッシュイベントを処理します

ここはPLUNKERです。これには2ページしかありません。

私の場合、ユーザーが更新する場合。ユーザーはFirstページにリダイレクトされ、入力/選択されたすべてのデータはデフォルトにリセットされます。

注:私はAngular 1.5コンポーネントルーティングの廃止に注意しています。悲しいことに、私はこのことについて、私のアプリが制作に出た後にしか知りません。ユーザーにいくつかのソリューションを提供する必要があります。Angular2に移行するまでは、ここで

は、コンポーネントルーティングを処理するコードです:

var module = angular.module('app', ['ngComponentRouter']); 

module.config(function($locationProvider) { 
    $locationProvider.html5Mode(true); 
}); 

module.value('$routerRootComponent', 'myFirstApp'); 

module.component('myFirstApp', { 
    templateUrl: "mainview.html", 
    $routeConfig: [{ 
    path: '/', 
    redirectTo: ['/First'] 
    }, { 
    path: '/first', 
    name: 'First', 
    component: 'firstComponent' 
    }, { 
    path: '/second', 
    name: 'Second', 
    component: 'secondComponent' 
    }] 
}) 
+0

ComponentRouterは非推奨です。これはAngular2 Routingを反映するように設計されていますが、Angular2の変更により同期が維持できなくなりました。この実装はそれ以上のアップデートを受け取ることはなく、その周りの設計を再検討したいかもしれません。 – Claies

+0

ええ、今のところ私のアプリは生産中です。私たちが角度2に移行するまで、私はユーザーに何らかの解決策を提示しなければなりません。 – ankitd

+0

私はあなたのコードを見ていて、 'html5Mode'が有効になっているのを見ましたが、まだ動いていないようです。これがComponentRouterのバグなのかどうかは分かりません。私はこれを見直そうとしています。今のところ、リロード時に '/'にリダイレクトするために 'otherwise'節を追加する必要があります。 – Claies

答えて

0

が、私はそれを行うことができた、唯一のことは、プログラムのルーティング処理するための1が必要です。 この行は魔法をしていますwindow.onbeforeunload = $rootRouter.navigate(['First']);

$rootRouter & $windowサービスを必ず注入してください。

module.component('firstComponent', { 
templateUrl: "1.html", 
controllerAs: "vm", 
controller: function($rootScope, sharedService, $rootRouter, $window) { 

    window.onbeforeunload = $rootRouter.navigate(['First']); 

} 
関連する問題