Ionic 4 / Angular 6-从app.component的生命周期挂钩中获取数据

时间:2018-12-18 19:53:23

标签: angular ionic-framework ionic4

我在app.component.html中设置了导航,我想在该模板中使用*ngIf。但是,由于ionViewWillEnter之类的生命周期钩子在app.component.ts中不起作用,因此如何在每次侧面导航弹出时都触发触发调用?

我只是想获得一个红点以显示数组中是否有notifications

app.component.html

    ...
    <ion-list>
      <ion-menu-toggle auto-hide="false" *ngFor="let p of appPages">
        <ion-item [routerDirection]="'root'" [routerLink]="[p.url]">
          <ion-icon slot="start" [name]="p.icon"></ion-icon>
          =====>HERE===><div class="red-dot" *ngIf="p.title == 'Home' && notifications.length > 0"></div> 
          <ion-label>
            {{p.title}}
          </ion-label>
        </ion-item>
      </ion-menu-toggle>
    </ion-list>
  </ion-content>
</ion-menu>
<ion-router-outlet main></ion-router-outlet>
...

app.component.ts

...
initializeApp() {
const parseQueryString = (queryString) => {
  const query = <any>{};
  for (let param of queryString.split('&')) {
    const pair = param.split('=');
    query[pair[0]] = pair[1];
  }
  return query;
};

this.platform.ready().then(() => {
  this.statusBar.styleDefault();
  this.splashScreen.hide();
  this.deepLinks.route({
  ...

我要添加到侧面导航逻辑中的内容

const newData = await this.api.listModel('Notification', {
  page: this.page
});
this.notifications = this.notifications.concat(newData);
this.notifications = _.filter(this.notifications, { isActioned: false }

1 个答案:

答案 0 :(得分:0)

据我了解,这是相同的组件。每当通知数组更改时,您都可以尝试调用detectChanges()。此处更多信息:https://angular.io/api/core/ChangeDetectorRef

如果这不是相同的组件,则可以将Rxjs中的service和Observables用作代理。