Nativescript angular导航到上一个组件

时间:2018-04-12 06:53:21

标签: nativescript angular2-nativescript nativescript-angular

我有一个ns-angular app,其结构如下:

<{1>} app.component我有一个主页page-router-outlet,有2页

  • 登录
  • 主要

路由按以下方式配置:

const routes: Routes = [
    { path: '', redirectTo: 'start', pathMatch: 'full' },
    { path: 'start', loadChildren: './views/login/start.module#StartModule' },
    { path: 'main', loadChildren: './views/main/main.module#MainModule' }
];

@NgModule({
    imports: [NativeScriptRouterModule.forRoot(routes)],
    exports: [NativeScriptRouterModule]
})
export class AppRoutingModule { }

在主要组件中,我有静态操作栏和在这些组件之间导航的子router-outlet。 路由再次定义为:

const mainRoutes: Routes = [
    {
        path: '', component: MainComponent, children: [
            { path: '', redirectTo: 'main/explore', pathMatch: 'full' },
            { path: 'camera', loadChildren: './camera/camera.module#CameraModule' },
            { path: 'explore', loadChildren: './explore/explore.module#ExploreModule' }
        ]
    }
];

export const MainRouting: ModuleWithProviders = RouterModule.forChild(mainRoutes);

目前发生的情况是,如果我在 - 让我们说 - explore组件(/main/explore),我会导航到相机组件(/main/camera)并按下我的Android设备,而不是回到探索组件我转到启动模块。 我阅读了有关角度导航的文档,但即使使用以下代码

也是如此
android.on(AndroidApplication.activityBackPressedEvent, (data: AndroidActivityBackPressedEventData) => {
    this.routerExtensions.back();
});

我无法返回上一个组件。 我将如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

尝试覆盖后退事件as shown in this StackOverflow answer

的默认Android行为

请注意data.cancel设置为true

application.android.on(AndroidApplication.activityBackPressedEvent, (data: AndroidActivityBackPressedEventData) => {

    data.cancel = true; // prevents default back button behavior

});