角向后导航

时间:2020-09-18 11:11:29

标签: angular nativescript

我有2个同级组件。在这两者之间,路由按预期工作,但是在导航时,无论我在哪个同级组件上,我都希望到达两者的父级组件。

父模块:

@NgModule({
    imports: [
        SharedModule,
        NativeScriptCommonModule,
        NativeScriptRouterModule,
        NativeScriptRouterModule.forChild([
            {
                path: "",
                component: ListeMonitorComponent,
            },

            {
                path: "webview/:id",
                loadChildren: () =>
                    import("~/app/monitordaten/webview/webview.module").then(
                        (m) => m.WebviewModule
                    ),
            },
            {
                path: "messwerte/:id",
                loadChildren: () =>
                    import(
                        "~/app/monitordaten/daten-monitordaten/daten-monitordaten.module"
                    ).then((m) => m.DatenMonitordatenModule),
            },
        ]),
    ],

在兄弟姐妹之间导航的功能:

goToMesswerte(monId:number){
        this.routerExt.navigate(['/monitorliste/messwerte/', monId], {skipLocationChange: true, transition: { name: 'slideRight' }})
    }

    goToWebview(monId:number){
        this.routerExt.navigate(['/monitorliste/webview/', monId ], {skipLocationChange: true, transition: { name: 'slideRight' }})
    }

如您所见,我尝试了不同的参数,例如skipLocationChangereplaceUrl,但都没有达到预期的效果

应用上方的代码的行为如下: gif 由于无法看到,我在屏幕上点击的位置将发生以下情况: 我在父组件上

--> webview (child, navigated with top right button)  
--> messwerte (child, navigated with top right button)  
--> webview (child, navigated with top right button)  
--> messwerte (child, navigated with top right button)  
<-- **pressing back** landing on webview  
<-- **pressing back** landing on messwerte for a short period, than beeing redirected to the parent

无论同级组件如何或我在它们之间进行切换的频率如何,如何在按下时都可以定向到父组件?

1 个答案:

答案 0 :(得分:0)

由于我提出了一个可行的想法,因此,我的解决方法是: 在这两个子组件上,我都只是使用导航到父组件的功能替换了后功能。

也许有一种更优雅的方法,因为圆形布线可能有用,但现在我的解决方案似乎很令人满意。