Ionic / Angular: есть ли способ вызвать ionViewWill / DidEnter из вкладки, переходящей на внешнюю страницу - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь вызвать событие, возвращающееся на мою вкладку со страницы за пределами модуля маршрутизации.

2. Я пробовал:

Использование @ ionic / angular NavController с обеих страниц: со страницы вкладки:

    this.navCtrl.navigateForward(['/store-name-keywords'], {

и снова с другой страницы

        this.navCtrl.navigateForward(['/tabs/storesearch'], {
          queryParams: { keyword: this.storeNameKeyword, city: city.cityName },
          relativeTo: this.route
        });

3. Вот мой код для маршрутизации на вкладках маршрутизации первого приложения, а затем на маршрутизацию вкладок

  {
    path: 'storesearch',
    loadChildren: () =>
      import('./pages/store-search/store-search.module').then(
        m => m.StoreSearchPageModule
      )
  },
  {
    path: 'store-search-results',
    loadChildren: () =>
      import('./pages/store-search-results/store-search-results.module').then(
        m => m.StoreSearchResultsPageModule
      )
  },
  {
    path: 'store-search-results/:keyword/:city',
    loadChildren: () =>
      import('./pages/store-search-results/store-search-results.module').then(
        m => m.StoreSearchResultsPageModule
      )
  },
  {
    path: 'store-name-keywords',
    loadChildren: () =>
      import('./pages/store-name-keywords/store-name-keywords.module').then(
        m => m.StoreNameKeywordsPageModule
      )
  },
  {
    path: 'select-prefecture',
    loadChildren: () =>
      import('./pages/select-prefecture/select-prefecture.module').then(
        m => m.SelectPrefecturePageModule
      )
  },

Маршрутизация на вкладках всех маршрутов:

const routes: Routes = [
  {
    path: 'tabs',
    component: TabsPage,
    children: [
      {
        path: 'home',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/home/home.module').then(m => m.HomePageModule)
          }
        ]
      },
      {
        path: 'ec',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/ec/ec.module').then(m => m.ECPageModule)
          }
        ]
      },
      {
        path: 'mypage',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/mypage/mypage.module').then(
                m => m.MyPagePageModule
              )
          }
        ]
      },
      {
        path: 'storesearch',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/store-search/store-search.module').then(
                m => m.StoreSearchPageModule
              )
          }
        ]
      },
      {
        path: 'storesearch/:keyword',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/store-search/store-search.module').then(
                m => m.StoreSearchPageModule
              )
          }
        ]
      },
      {
        path: 'storesearch/:keyword/:city',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/store-search/store-search.module').then(
                m => m.StoreSearchPageModule
              )
          }
        ]
      },
      {
        path: 'storesearch/store-search-results',
        loadChildren: () =>
          import(
            '../pages/store-search-results/store-search-results.module'
          ).then(m => m.StoreSearchResultsPageModule)
      },
      {
        path: 'article',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/article/article.module').then(
                m => m.ArticlePageModule
              )
          }
        ]
      },
      {
        path: 'qrcode',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/qrcode/qrcode.module').then(
                m => m.QRCodePageModule
              )
          }
        ]
      },
      {
        path: 'coupon',
        children: [
          {
            path: '',
            loadChildren: () =>
              import('../pages/coupon/coupon.module').then(
                m => m.CouponPageModule
              )
          }
        ]
      },
      {
        path: '',
        redirectTo: '/tabs/home',
        pathMatch: 'full'
      }
    ]
  },
  {
    path: '',
    redirectTo: '/tabs/home',
    pathMatch: 'full'
  }
];

Заранее большое спасибо за любую помощь!

1 Ответ

0 голосов
/ 16 апреля 2020

Я обнаружил, что вы всегда можете вызвать ввод независимо от того, откуда вы пришли на входе в маршрут, подписавшись на URL-адрес ActivatedRoute Angular:

     import { ActivatedRoute } from '@angular/router';
  private activatedRoute: ActivatedRoute,

    this.activatedRoute.url.subscribe(obs => {
  // Can call a method for reentering view here
  this.enteredStoreSearchPage();
});

Я получил это из другого ответа I Я уверен, но на всякий случай это кому-нибудь поможет, я хотел это опубликовать. Ничего подобного ответить на свой вопрос:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...