带有 Router Guard 的延迟加载模块和 Angular4 中的动态路由
Lazy load module with Router Guard with dynamic routes in Angular4
我有一个延迟加载模块,其中包含多个具有动态路由的组件,每个组件由路由器定义 guard.So 如何为具有动态路由的每个组件配置路由。对于每条路由路径,我都能看到相同的组件,当我使用 url 手动路由时,出现错误 "Guard is not a function".
下面是我的代码:
mycomponent.module.ts
@NgModule({
imports: [
routing,
SharedModule,
CommentsModule,
],
declarations: [
MyComponent1,
MyComponent2,
MyComponent3,
MyComponent4,
MyComponent5,
],
providers: [mycomponentService]
})
export class MyComponentModule { }
mycomponent.routing.ts
const routes: Routes = [
{
path: '',
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
children: [
{ path: '/my-todos', component: MyComponent1 },
{ path: '/edit-my-todo/:tid', component: MyComponent2 },
{ path: '/edit-my-todo/single-todo/:tid', component: MyComponent2 },
{ path: '/edit-my-todo/multi-todo/:tid', component: MyComponent2 },
{ path: '/add-todo', component: MyComponent3 },
{ path: '/multiple-todo-details/:tid', component: MyComponent4 },
{ path: '/todo/:alias', component: MyComponent5 },
{ path: '/todo-preview/:tid', component: MyComponent5 },
]
},
];
app.routing.ts
{
path: '',
loadChildren:'app/mycomponent/mycomponent.module#MyComponentModule'
};
如何为这个动态路由配置路由,即使我遇到了 gaurd 的错误也不是一个功能。有谁知道如何为上面配置路由。以前有没有人遇到过同样的问题。任何帮助都会有很大帮助。预先感谢您的帮助。
我想通了,配置路由的方法。希望这对以后的人有帮助
mycomponent.routing.ts
const routes: Routes = [
{ path: 'my-todos', component: MyComponent1 },
{ path: 'edit-my-todo/:tid', component: MyComponent2 },
{ path: 'edit-my-todo/single-todo/:tid', component: MyComponent2 },
{ path: 'edit-my-todo/multi-todo/:tid', component: MyComponent2 },
{ path: 'add-todo', component: MyComponent3 },
{ path: 'multiple-todo-details/:tid', component: MyComponent4 },
{ path: 'todo/:alias', component: MyComponent5 },
{ path: 'todo-preview/:tid', component: MyComponent5 },
];
app.routing.ts
{
path: '',
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
children: [
{ path: '',
loadChildren:
'app/mycomponent/mycomponent.module#MyComponentModule'
},
],
}
这工作正常而且运作良好。
我有一个延迟加载模块,其中包含多个具有动态路由的组件,每个组件由路由器定义 guard.So 如何为具有动态路由的每个组件配置路由。对于每条路由路径,我都能看到相同的组件,当我使用 url 手动路由时,出现错误 "Guard is not a function".
下面是我的代码: mycomponent.module.ts
@NgModule({
imports: [
routing,
SharedModule,
CommentsModule,
],
declarations: [
MyComponent1,
MyComponent2,
MyComponent3,
MyComponent4,
MyComponent5,
],
providers: [mycomponentService]
})
export class MyComponentModule { }
mycomponent.routing.ts
const routes: Routes = [
{
path: '',
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
children: [
{ path: '/my-todos', component: MyComponent1 },
{ path: '/edit-my-todo/:tid', component: MyComponent2 },
{ path: '/edit-my-todo/single-todo/:tid', component: MyComponent2 },
{ path: '/edit-my-todo/multi-todo/:tid', component: MyComponent2 },
{ path: '/add-todo', component: MyComponent3 },
{ path: '/multiple-todo-details/:tid', component: MyComponent4 },
{ path: '/todo/:alias', component: MyComponent5 },
{ path: '/todo-preview/:tid', component: MyComponent5 },
]
},
];
app.routing.ts
{
path: '',
loadChildren:'app/mycomponent/mycomponent.module#MyComponentModule'
};
如何为这个动态路由配置路由,即使我遇到了 gaurd 的错误也不是一个功能。有谁知道如何为上面配置路由。以前有没有人遇到过同样的问题。任何帮助都会有很大帮助。预先感谢您的帮助。
我想通了,配置路由的方法。希望这对以后的人有帮助
mycomponent.routing.ts
const routes: Routes = [
{ path: 'my-todos', component: MyComponent1 },
{ path: 'edit-my-todo/:tid', component: MyComponent2 },
{ path: 'edit-my-todo/single-todo/:tid', component: MyComponent2 },
{ path: 'edit-my-todo/multi-todo/:tid', component: MyComponent2 },
{ path: 'add-todo', component: MyComponent3 },
{ path: 'multiple-todo-details/:tid', component: MyComponent4 },
{ path: 'todo/:alias', component: MyComponent5 },
{ path: 'todo-preview/:tid', component: MyComponent5 },
];
app.routing.ts
{
path: '',
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
children: [
{ path: '',
loadChildren:
'app/mycomponent/mycomponent.module#MyComponentModule'
},
],
}
这工作正常而且运作良好。