Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 组件未加载到预期的路由器出口上_Angular - Fatal编程技术网

Angular 组件未加载到预期的路由器出口上

Angular 组件未加载到预期的路由器出口上,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.

这是重复我的问题,但我已经把问题说得更清楚了。我有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,但它没有显示在预期的第二个路由器出口中。它刚从第一个路由器出口出来。我也没有任何错误

管理布局.路由.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 { }
参数.路由.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,并为属性和参数创建了不同的模块,属性确实使用了,因为我已在属性模块中导入了它的模块。如果你有任何问题,请告诉我。