向服务器发送一些数据后如何重新加载组件?

时间:2019-04-23 13:26:34

标签: angular typescript nativescript nativescript-angular

我正在创建一个跨平台的应用程序。我有一个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 :(得分:0)

您是否考虑过在路由器配置中使用onSameUrlNavigation?如果您正在使用标签中的路由器插座,那么您应该可以完成这项工作。

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

答案 1 :(得分:0)

听起来好像本机脚本页面和角度组件的生命周期不一样。如何在页面的navigatingTo事件中设置订阅?

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