2017-07-07 12 views
0

canActivateとcanLoadを2つの異なるモジュールレベルで使用しようとしましたが、まだ遅延ロードされたモジュールに直接アクセスできません。あなたが直接http://url.com/lazyに移動していない場合は、上記のコードが動作するapp.routing.module.tscanLoadまたはcanActivateガードダイレクトURLを持つ角4遅延ロードモジュール/

import { AuthGuardImpl } from './lazy-load/auth-guard.service'; 
import {AuthGuard} from './lazy-load/auth.service'; 


const routes: Routes = [ 
    { path: 'home', component: HomeComponent }, 
    { path: '', redirectTo: 'home', pathMatch: 'full' }, 
    { path: 'lazy', canLoad: [AuthGuardImpl], loadChildren: 'app/lazy-load/lazy-load.module#LazyLoadModule'}, 
    { path: '**', component: PageNotFoundComponent } 
]; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    RouterModule.forRoot(routes) 
    ], 
    exports: [RouterModule], 
    declarations: [], 
    providers: [AuthGuardImpl, AuthGuardService] 
}) 

。しかし、http://url.com/に行き、lazyモジュールへのルータのリンクに従います。

は同様に私が試した:

再び、 http://url.com/lazyに直接行く動作しませんが、アプリのロード場合は動作し、ユーザーがrouterlinkによって /lazyにナビゲートします
import { AuthGuard } from './auth.service'; 
import { AuthGuardImpl } from './auth-guard.service'; 


const lazyRoutes: Routes = [ 
    { path: '', component: LazyLoadComponent, canActivate: [AuthGuardImpl], 
    children: [ 
    { path: 'dashboard', loadChildren: 'app/lazy-load/dashboard/dashboard.module#DashboardModule' }, 
    { path: '', redirectTo: 'dashboard', pathMatch: 'full'}, 
]; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    RouterModule.forChild(lazyRoutes)], 
    exports: [RouterModule], 
    declarations: [], 
    providers: [AuthGuardImpl, AuthGuard] 
}) 

を。

ガードを使用する遅延ロードモジュールの直接URLに移動することはできますか?

+0

私はこの問題を私のサービスで非同期の問題に絞り込んだ。私はそれを完全に解決したら、私の答えを更新します。 – Aluminum91

答えて

0

私のアプリケーションでこれを試してみましたが、正常に動作しているようです。あなたは開発時に実行することを指していますか?または、プロダクションに導入した後あなたが見て、比較したい場合は

あなたがここに私のサンプルコードをダウンロードすることができます:https://github.com/DeborahK/Angular-Routing/tree/master/APM-Final

をああ...私はちょうどあなたが投稿したURLを詳しく見て、あなたが生産に言及されているように見えます。これらの「ディープリンク」を処理するには、サーバー上でURL書き換えを実装する必要があります。どのように行うかは、使用しているサーバーのタイプによって異なります。

+0

私はCLIから開発時に実行することを指していますが、URL書き換えについても非常に良い点があります。 私はあなたのサンプルプロジェクトを見て、それはあなたのように行動すべきです。私は何が欠けているのだろうか。 – Aluminum91

+0

私の場合は、期待どおりに動作しますか? CLIのどのバージョンを使用していますか? – DeborahK

関連する問題