Angular 中是否必须将路由关联到组件
Is it mandatory to associate a route to a component in Angular
我是 Angular 的新手。我有以下 folder/file 树:
-- app folder
-- root (
-- pages (pages-routing, pages-module, pages-component)
-- page1 (page1-routing, page1-component)
-- subcomponent (subcomponent-component)
我的页面路由是这样定义的
const routes: Routes = [{
path: '',
component: PagesComponent,
children: [{
path: 'page1',
component: Page1Component,
}, {
path: 'subcomponent',
component: SubComponent,
}],
}];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class PagesRoutingModule { }
export const routedComponents = [
Page1Component,
SubComponent,
];
Pages NgModule
@NgModule({
imports: [
ThemeModule,
PagesRoutingModule,
],
declarations: [
...routedComponents,
],
providers: [
SmartTableService,
],
})
Page1 NgModule 看起来很相似:
@NgModule({
imports: [
ThemeModule,
PagesRoutingModule,
Ng2SmartTableModule,
],
declarations: [
...routedComponents,
],
providers: [
SmartTableService,
],
})
这可行,但我的问题是..我想知道是否可以删除子组件的路由..因为子组件不需要真正的路由?
到目前为止我所做的是尝试从页面路由中删除这个
{
path: 'subcomponent',
component: SubComponent,
}
和
{
SubComponent,
}
并且我在 Pages NgModule 和 Page1 NgModule Declarations 部分都添加了 SubComponent 引用
但我得到:没有找到 SubComponent
的组件工厂
所以真正的问题。 component 必须有路由吗?
组件可以没有路由吗?
组件与路由相关联不是强制性的。
根据 Angular 路由文档,必须将路由与组件一起使用。
如果不直接在Route中设置,那么至少子Route要有组件。
https://angular.io/api/router/Route
component?: Type<any>
The component to instantiate when the path matches. Can be empty if child routes specify components.
组件可以用作您通常要路由到的页面之类的东西。在这些情况下,您会将它们与导航到此页面的路由相关联。
组件也可以是您想要放入其他组件的内容的小包——例如页面组件。您将尝试将特定范围封装在特定组件中,以完全满足此目的。
我是 Angular 的新手。我有以下 folder/file 树:
-- app folder
-- root (
-- pages (pages-routing, pages-module, pages-component)
-- page1 (page1-routing, page1-component)
-- subcomponent (subcomponent-component)
我的页面路由是这样定义的
const routes: Routes = [{
path: '',
component: PagesComponent,
children: [{
path: 'page1',
component: Page1Component,
}, {
path: 'subcomponent',
component: SubComponent,
}],
}];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class PagesRoutingModule { }
export const routedComponents = [
Page1Component,
SubComponent,
];
Pages NgModule
@NgModule({
imports: [
ThemeModule,
PagesRoutingModule,
],
declarations: [
...routedComponents,
],
providers: [
SmartTableService,
],
})
Page1 NgModule 看起来很相似:
@NgModule({
imports: [
ThemeModule,
PagesRoutingModule,
Ng2SmartTableModule,
],
declarations: [
...routedComponents,
],
providers: [
SmartTableService,
],
})
这可行,但我的问题是..我想知道是否可以删除子组件的路由..因为子组件不需要真正的路由? 到目前为止我所做的是尝试从页面路由中删除这个
{
path: 'subcomponent',
component: SubComponent,
}
和
{
SubComponent,
}
并且我在 Pages NgModule 和 Page1 NgModule Declarations 部分都添加了 SubComponent 引用 但我得到:没有找到 SubComponent
的组件工厂所以真正的问题。 component 必须有路由吗? 组件可以没有路由吗?
组件与路由相关联不是强制性的。
根据 Angular 路由文档,必须将路由与组件一起使用。 如果不直接在Route中设置,那么至少子Route要有组件。
https://angular.io/api/router/Route
component?: Type<any>
The component to instantiate when the path matches. Can be empty if child routes specify components.
组件可以用作您通常要路由到的页面之类的东西。在这些情况下,您会将它们与导航到此页面的路由相关联。 组件也可以是您想要放入其他组件的内容的小包——例如页面组件。您将尝试将特定范围封装在特定组件中,以完全满足此目的。