Angular NativeScript:路由器出口不';行不通
我在我的应用程序中遵循了这一点,它展示了如何在{N}中实现Angular NativeScript:路由器出口不';行不通,angular,nativescript,router-outlet,Angular,Nativescript,Router Outlet,我在我的应用程序中遵循了这一点,它展示了如何在{N}中实现。我的应用程序中唯一的区别是我想在模式页面中使用它。但它不是模态中的元素,而是将内容作为新页面加载 模态分量 。。。 @组成部分({ 选择器:“模态”, 模板:` ` }) 导出类ModalComponent{ 构造函数(专用页:页,公共参数:ModalDialogParams){ // .. } } app.routing.ts 。。。 导出常量路由:路由=[ {path:,重定向到:“home”,路径匹配:“full”}, {路径:
。我的应用程序中唯一的区别是我想在模式页面中使用它。但它不是模态中的
元素,而是将内容作为新页面加载
模态分量
。。。
@组成部分({
选择器:“模态”,
模板:`
`
})
导出类ModalComponent{
构造函数(专用页:页,公共参数:ModalDialogParams){
// ..
}
}
app.routing.ts
。。。
导出常量路由:路由=[
{path:,重定向到:“home”,路径匹配:“full”},
{路径:“主”,组件:HomeComponent},
{路径:“模态”,组件:ModalComponent},
{path:“first”,component:FirstComponent},
{路径:“第二”,组件:第二组件}
];
导出常量dynamicComponents=[
模态分量,
第一部分,
第二成分
];
...
app.module.ts
。。。
@NGD模块({
进口:[
NativeScript模块,
NativeScriptFormsModule,
NativeScript HttpModule,
NativeScript路由模块,
NativeScriptRouterModule.forRoot(路由)
],
声明:[
应用组件,
HomeComponent,
…动态组件
],
入口组件:[
…动态组件
],
引导:[AppComponent]
})
导出类AppModule{}
知道为什么/first
和/second
导航到新页面而不是加载到modal的路由器出口吗
更新:
这似乎是一个错误。请参阅下面的我的答案。在app.module.ts文件中进行以下更改,以便在不使用NativeScriptRouterModule的情况下执行此操作:
{
path: 'modal',
component: ModalComponent,
children: [
{ path: "first", component: FirstComponent },
{ path: "second", component: SecondComponent }
]
}
import { RouterModule } from '@angular/router';
@NgModule({
imports: [...,RouterModule.forRoot(routes)],
declarations: [
AppComponent,
HomeComponent,
...dynamicComponents
],
entryComponents: [
...dynamicComponents
],
bootstrap: [AppComponent]
})
export class AppModule {}
关闭模式时,还应导航回模式路径,因为激活的路径将是
/first
或/second
,并且您希望在模式消失后激活的路径是/modal
。我创建了干净的{N}+角度投影并进行了测试。
如果应用程序是使用具有
的组件引导的,则会出现问题;它将忽略(子)页面/组件中的任何
,并且nsRouteLink
将导航到新页面,而不是将目标组件加载到路由器出口中
没有
(在根组件中)的测试按预期工作
我认为这是一个错误,因为我没有看到任何关于必须在文档中使用
或
的通知(无论如何都没有任何意义)
更新:打开了一个
更新2:嵌套路由器(
,根目录中有
)应该定义子路由器才能工作。但是如果
处于模式,它将无法工作(抛出错误:没有ModalDialogParams的提供程序!
)。这绝对是一个bug。我没有使用NativeScriptRouterModule
,但我使用@angular/router
的RouterModule
做同样的事情,它工作正常这是一个NativeScript应用程序。我无法删除这些模块。此外,返回也不是问题。我需要在
中加载/first
和/second
。