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 NativeScript:路由器出口不';行不通_Angular_Nativescript_Router Outlet - Fatal编程技术网

Angular NativeScript:路由器出口不';行不通

Angular NativeScript:路由器出口不';行不通,angular,nativescript,router-outlet,Angular,Nativescript,Router Outlet,我在我的应用程序中遵循了这一点,它展示了如何在{N}中实现。我的应用程序中唯一的区别是我想在模式页面中使用它。但它不是模态中的元素,而是将内容作为新页面加载 模态分量 。。。 @组成部分({ 选择器:“模态”, 模板:` ` }) 导出类ModalComponent{ 构造函数(专用页:页,公共参数:ModalDialogParams){ // .. } } app.routing.ts 。。。 导出常量路由:路由=[ {path:,重定向到:“home”,路径匹配:“full”}, {路径:

我在我的应用程序中遵循了这一点,它展示了如何在{N}中实现
。我的应用程序中唯一的区别是我想在模式页面中使用它。但它不是模态中的
元素,而是将内容作为新页面加载

模态分量
。。。
@组成部分({
选择器:“模态”,
模板:`
`
})
导出类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