我有一个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();
});
我无法返回上一个组件。 我将如何实现这一目标?
答案 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
});