我在 NgbModal 中使用 routerLink 指令时遇到了非常奇怪的情况。首先,我有结构如下的功能模块:
-feature/
-components/
-popup-component/
popup-component.ts
-preferences-component/
preferences-component.ts
index.ts
+containers/
feature-routing.module.ts
feature.module.ts
路由定义如下(简化):
export const routes: Routes = [
{
path: '',
component: ContainerPageComponent
},
{
path: ':id',
component: AnotherContainerPageComponent,
children: [
{ path: '', redirectTo: 'some-route' },
{ path: 'preferences', component: PreferencesComponent },
{ path: 'rules/new', component: OtherComponent }
]
}
];
我有从首选项组件打开的模式,如下所示:
addRulePopup() {
const ref = this.modalService.open(PopupComponent, {
backdrop: 'static',
centered: true,
size: 'lg',
backdropClass: 'bg-white-opaque force-opaque no-border',
windowClass: 'no-border'
});
ref.result.then(e => {
console.log(e);
});
}
打开模态时我不会更改 url,所以我建议从路由器的角度来看,当我打开模态时没有任何变化。
在弹出组件和首选项组件中,我都有这样的链接:
<div class="rule" routerLink="../rules/new">
问题是从弹出组件我被重定向到 404,而从首选项我导航到正确的 url。
问题的描述可能看起来过于复杂,如果你觉得很抱歉:) 我试图简化事情。