CanLoad গার্ড অলস লোডেড মডিউল লোড করতে বাধা দেয়। আমরা সাধারণত এই প্রহরীটি ব্যবহার করি যখন আমরা মডিউলটির কোনও রুটে চলাচল করতে অননুমোদিত ব্যবহারকারীর কাছে না যেতে চাই এবং মডিউলটির উত্স কোডও দেখতে পারি না stop
কৌণিক canActivate সরবরাহ করে গার্ড সরবরাহ করে, যা অননুমোদিত ব্যবহারকারীকে রুটে অ্যাক্সেস করা থেকে বাধা দেয়। তবে এটি মডিউলটি ডাউনলোড হতে বাধা দেয় না। ব্যবহারকারী উত্স কোডটি দেখতে ক্রোম বিকাশকারী কনসোল ব্যবহার করতে পারেন। CanLoad গার্ড মডিউলটি ডাউনলোড হতে বাধা দেয়।
আসলে, CanLoad একটি মডিউল লোড হওয়ার জন্য সুরক্ষিত করে তবে একবার মডিউল লোড হয়ে গেলে CanLoad গার্ড কিছুই করবে না। মনে করুন আমরা অননুমোদিত ব্যবহারকারীর জন্য CanLoad গার্ড ব্যবহার করে একটি মডিউল লোডিং সুরক্ষিত করেছি । যখন ব্যবহারকারী লগ ইন থাকে তখন সেই মডিউলটি লোড হওয়ার জন্য প্রযোজ্য হবে এবং আমরা সেই মডিউলটি কনফিগার করা শিশুদের পাথগুলিতে নেভিগেট করতে সক্ষম হব। ব্যবহারকারী যখন লগ-আউট হয়ে থাকে, তবুও ব্যবহারকারী সেই শিশুদের পথে চলাচল করতে সক্ষম হবে কারণ মডিউলটি ইতিমধ্যে লোড হয়েছে। এই ক্ষেত্রে যদি আমরা অননুমোদিত ব্যবহারকারীদের থেকে শিশুদের পথগুলি রক্ষা করতে চাই তবে আমাদের CanActivate গার্ডও ব্যবহার করা উচিত ।
অ্যাডমিনমডুল লোড করার আগে CanLoad ব্যবহার করুন :
{
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule',
canLoad: [ AuthGuardService ]
},
অ্যাডমিনমডুল লোড করার পরে, অ্যাডমিনআউটিং মডিউলে আমরা ক্যানএ্যাকটিভকে অননুমোদিত ব্যবহারকারীর কাছ থেকে বাচ্চাদের রক্ষা করতে ব্যবহার করতে পারি :
{
path: '',
component: AdminComponent,
children: [
{
path: 'person-list',
component: PersonListComponent,
canActivate: [ AuthGuardService ]
}
]
}
canActivate
যদি উপরের দৃশ্যে ব্যবহার করি তবে পার্থক্য কী হবে?