2017-02-03 25 views
9

canLoadとcanActivateの違いは何ですか?Angular2 canLoadとcanActivate

export interface Route { 
path?: string; 
pathMatch?: string; 
matcher?: UrlMatcher; 
component?: Type<any>; 
redirectTo?: string; 
outlet?: string; 
canActivate?: any[]; 
canActivateChild?: any[]; 
canDeactivate?: any[]; 
canLoad?: any[]; 
data?: Data; 
resolve?: ResolveData; 
children?: Routes; 
loadChildren?: LoadChildren; 

}

とき、私はそれらの一つ一つべきでしょうか?

答えて

22

canActivateは、許可されていないユーザーが特定のルートにアクセスするのを防ぐために使用されます。詳細についてはSee docsをご覧ください。

canLoadは、アプリケーションが許可されていない場合、モジュール全体を遅延ロードするのを防ぐために使用されます。

See docsと下記の例を参照してください。このコードでは

{ 
    path: 'admin', 
    loadChildren: 'app/admin/admin.module#AdminModule', 
    canLoad: [AuthGuard] 
}, 

AuthGuardがtrueを返した場合、AdminModuleのためのコードは、アプリケーションにロードされます。

ユーザーにこのルートへのアクセスが許可されておらず、canActivateガードのみを使用した場合は、ユーザーがそのルートにアクセスできない場合でもAdminModuleがロードされます。

+0

上記のシナリオで 'canActivate'を使用すると、どのような違いがありますか? – k11k2

関連する問題