Nativescript angular 导航到上一个组件

Nativescript angular navigate to previous component

我有一个 ns-angular 应用程序,其结构如下:

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 设备上,我没有返回探索组件,而是转到启动模块。 我阅读了有关 angular 导航的文档,但即使使用以下代码

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

我无法 return 上一个组件。 我将如何实现?

尝试覆盖后退事件的默认 Android 行为

注意 data.cancel 设置为 true

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

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

});