Angular 用のキャッチオール コントローラーがないことはわかっています。例えば:
$routeProvider.otherwise({
controller: 'CatchAllCtrl'
});
ただし、 $routeProvider.otherwise がトリガーされた場合にコードを呼び出す方法はありますか?
Angular 用のキャッチオール コントローラーがないことはわかっています。例えば:
$routeProvider.otherwise({
controller: 'CatchAllCtrl'
});
ただし、 $routeProvider.otherwise がトリガーされた場合にコードを呼び出す方法はありますか?
「それ以外の」ロジックを実行できる catchcall ルートにリダイレクトしてから、アプリ内の実際のビューに手動でリダイレクトできます。
$routeProvider
.when('/', {
templateUrl: '/partials/index.html',
controller: 'homeController'
})
.when('/otherwise', {
controller: 'otherwiseController'
})
.otherwise({redirectTo: '/otherwise' });
そうでなければコントローラに $location を注入$location.path("/")
して、行きたい場所にリダイレクトするように設定できます。
/otherwise ルートの templateUrl を指定する必要があるかもしれません (わかりません)。
ルートの変更をリッスンし、コールバックで必要なアクションを実行できます。
$rootScope.$on('$routeChangeSuccess', function() {
var path = $location.path();
// this shoudl fire for all routes
}):