Как перезагрузить компонент после отправки некоторых данных на сервер? - PullRequest
0 голосов
/ 23 апреля 2019

Я создаю кросс-платформенное приложение. У меня есть компонент TabView, который должен обновить вкладку после отправки некоторого значения на сервер. Когда я вхожу в систему, ngOnInit динамически устанавливает содержимое моей вкладки, но когда я отправляю данные на сервер и перехожу на сводную страницу, ngOnInit больше не вызывается, поэтому содержимое никогда не меняется. Есть идеи?

Вот часть моего кода

home.component.ts

ngOnInit(){
 this.homeService.getPrenotazioni().subscribe((res) => {
  var layout = <StackLayout>this.page.getViewById("prenotazioni");
  //...set content...
 };
}

tabs.component.html

<GridLayout>
    <TabView androidTabsPosition="bottom">
        <page-router-outlet *tabItem="{title: 'Home'}" name="homeTab"></page-router-outlet>
        <page-router-outlet *tabItem="{title: 'Prenota Ritiro'}" name="prenotaritiroTab"></page-router-outlet>

         <!-- other tabs -->
    </TabView>
</GridLayout>

Когда я отправляю данные с вкладки «Prenota ritiro» и перехожу на вкладку «Главная», я хочу обновить содержимое вкладки «Главная»

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Похоже, что нативная страница и жизненный цикл угловой компоненты не совпадают. Как насчет настройки подписки в событии navigatingTo на странице?

https://docs.nativescript.org/ui/ns-ui-widgets/page

0 голосов
/ 23 апреля 2019

Рассматривали ли вы использование onSameUrlNavigation в конфигурации роутера? Если вы используете роутер-розетку на вкладке, вы сможете сделать это.

@ngModule({
 imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: ‘reload’})],
 exports: [RouterModule],
 })
...