Angular 组件未加载到预期的路由器出口上
这是重复我的问题,但我已经把问题说得更清楚了。我有2个路由admin-layout.routing.ts和parameter.routing.ts 在admin-layout.routing.ts中,我有一个property.component.ts的路径,它有一个子元素parameter.component.ts。在这个parameter.component.ts中,我有一个路由器出口,我希望soa-date.component.ts出现在这里。我可以访问soa-date.component.ts,但它没有显示在预期的第二个路由器出口中。它刚从第一个路由器出口出来。我也没有任何错误 管理布局.路由.tsAngular 组件未加载到预期的路由器出口上,angular,Angular,这是重复我的问题,但我已经把问题说得更清楚了。我有2个路由admin-layout.routing.ts和parameter.routing.ts 在admin-layout.routing.ts中,我有一个property.component.ts的路径,它有一个子元素parameter.component.ts。在这个parameter.component.ts中,我有一个路由器出口,我希望soa-date.component.ts出现在这里。我可以访问soa-date.component.
{ path: 'property', component: PropertyComponent, canActivate: [AuthGuard],
children: [
{ path: '', component: ParametersComponent,
loadChildren: '../../property/parameters/parameters.module#ParmetersModule'
}
]
},
{ path: 'person', component: PersonComponent, canActivate: [AuthGuard] }
import { Routes } from '@angular/router';
import { SoaDateComponent } from './soa-date/soa-date.component';
export const ParametersRoutes: Routes = [
{ path: 'soadate', component: SoaDateComponent }
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(ParametersRoutes),
],
declarations: [
SoaDateComponent
]
})
export class ParmetersModule { }
参数.路由.ts
{ path: 'property', component: PropertyComponent, canActivate: [AuthGuard],
children: [
{ path: '', component: ParametersComponent,
loadChildren: '../../property/parameters/parameters.module#ParmetersModule'
}
]
},
{ path: 'person', component: PersonComponent, canActivate: [AuthGuard] }
import { Routes } from '@angular/router';
import { SoaDateComponent } from './soa-date/soa-date.component';
export const ParametersRoutes: Routes = [
{ path: 'soadate', component: SoaDateComponent }
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(ParametersRoutes),
],
declarations: [
SoaDateComponent
]
})
export class ParmetersModule { }
参数.module.ts
{ path: 'property', component: PropertyComponent, canActivate: [AuthGuard],
children: [
{ path: '', component: ParametersComponent,
loadChildren: '../../property/parameters/parameters.module#ParmetersModule'
}
]
},
{ path: 'person', component: PersonComponent, canActivate: [AuthGuard] }
import { Routes } from '@angular/router';
import { SoaDateComponent } from './soa-date/soa-date.component';
export const ParametersRoutes: Routes = [
{ path: 'soadate', component: SoaDateComponent }
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(ParametersRoutes),
],
declarations: [
SoaDateComponent
]
})
export class ParmetersModule { }
parameters.component.html
<a [routerLink]="['/soadate']" routerLinkActive="active" >SOA DATE</a>
<router-outlet name="paramOutlet"></router-outlet>
SOA日期
我需要你的帮助。谢谢。由于没有足够的代码来解释这个问题,根据我对问题的理解,我创建了一个stackblitz。 我认为您需要在这里创建一个
父-子结构
来实现您想要的
还有一件事,您是否在任何组件的声明中包含参数component
不管怎么说,这是斯塔克闪电战
如果我没有错的话,这就是你想要实现的目标
App
PropertyComponent
参数组件
SoaDateComponent
在我的示例中,单击显示的链接,您将看到上面的结构,即SoaDateComponent
正在正确加载ParametersComponent
。
可能对您有帮助的代码位于parameters.module.ts
中,因为我使用属性component.ts中的,所以我已将parameters.component包含在管理布局组件中。我可以访问soadate.component,但它不是在parameters.component中的上渲染,而是在admin layout组件中属性的上渲染。如果我没有将parameters.component放在admin-layout.module中,我也不能在property.component.module中使用,由于我使用的是.forChild而不是.forRoot(),这会有所不同吗?请参阅,我更新了stackbitz,并为属性和参数创建了不同的模块,属性确实使用了,因为我已在属性模块中导入了它的模块。如果你有任何问题,请告诉我。