RouterExtension.back() 不起作用 Nativescript Angular.



我有一个名为TransactionModule的模块,其中包含以下路由:

transaction-routeting.module.ts

export const routes: Route[] = [
  {
    path: 'transaction',
    component: TransactionComponent,
    canActivate: [AuthGuard],
    children: [
      {
        path: 'deposit',
        component: DepositComponent,
        outlet: 'depositTab'
      },
      {
        path: 'skrill-deposit',
        component: SkrillDepositComponent,
        outlet: 'depositTab'
      },
      {
        path: 'withdrawal',
        component: WithdrawalComponent,
        outlet: 'withdrawalTab'
      }
    ]
  },
我的

转换组件的作用是它包含我的选项卡,其模板如下所示:

<ActionBar title="ActionBar title">
  <NavigationButton android.systemIcon="ic_menu_back" text="Back To Dashboard" (tap)="goBack()"></NavigationButton>
</ActionBar>
<TabView androidTabsPosition="bottom" selectedIndex="0">
  <page-router-outlet *tabItem="{title: 'Deposit'}" name="depositTab" actionBarVisibility="never">
  </page-router-outlet>
  <page-router-outlet *tabItem="{title: 'Withdrawal'}" name="withdrawalTab" actionBarVisibility="never">
  </page-router-outlet>
</TabView>

下面是组件的代码:

transaction.component.ts

export class TransactionComponent implements OnInit {
  constructor(private routerExtensions: RouterExtensions, 
    private activatedRoute: ActivatedRoute) { }
  ngOnInit() {
    this.routerExtensions.navigate(
      [{ outlets: { depositTab: ['deposit'], withdrawalTab: ['withdrawal'] } }],
      { relativeTo: this.activatedRoute }
   );
  }
  goBack() {
    console.log(this.routerExtensions.canGoBack());
    this.routerExtensions.back();
  }
}

现在,我想做的是,当单击操作栏的后退按钮时,它应该返回到仪表板(/dashboard,这是进入交易之前的发起路由(。但是,它不起作用。

当我尝试记录这个.routerExtensions.canGoBack((时,它返回false。为什么会这样?为什么我无法导航回仪表板?

我遇到了同样的问题,我能够通过使用带有BackNavigationOptions参数的RouterExtension后退函数来解决,就像这样。

    this.router.back({
      outlets: null,
      relativeTo: this.active,
    });

您必须通过在 relativeTo 属性上指定值来指定应从哪个 ActiveRoute 开始导航回来。希望这是有道理的。:)

尝试添加 transaction.component.ts:

get canGoBack() {
    return this.router.canGoBack();
}

在.html文件中:

<NavigationButton 
    android.systemIcon="ic_menu_back" 
    text="Back To Dashboard"
    (tap)="onGoBack()" (tap)="goBack()">
</NavigationButton>

最新更新