Есть ли способ использовать только один p-тост для всех сообщений? - PullRequest
1 голос
/ 06 августа 2020

Я использую primeng p-toast для отображения сообщений.

Я поместил p-toast html в app.component. html

<div class="main-container">
  <router-outlet></router-outlet>
</div>
<p-toast position="top-right" key="main"></p-toast>

и импортировал ToastModule и MessageService в sharedModule, чтобы его могли использовать любые компоненты.

Пытался отобразить сообщение, используя это на многих дочерних компонентах, но оно не отображалось

this.messageService.add({
          key: "main",
          severity: "info",
          detail: "Ready to scan",
        });

Мне все равно нужно добавить p -toast html в дочернем html, чтобы он работал.

Дочерний компонент загружается через app-routing.module

const routes: Routes = [
  { path: "", component: HomeComponent },
  {
    path: "catalogs",
    loadChildren: () =>
      import("./catalog/catalog.module").then((m) => m.CatalogModule)
  }];

@NgModule({
  imports: [
    RouterModule.forRoot(routes)
  ],
  exports: [RouterModule],
})
export class AppRoutingModule {}

Есть ли способ объявить только один , а дочерние компоненты вызывают messageService.add могут отображать сообщение в этом p-тосте?

1 Ответ

1 голос
/ 07 августа 2020

Я решил проблему с помощью @ yurzui

Раньше ToastModule и MessageService импортировались в SharedModule, так что мне не приходилось повторно импортировать материалы в другие созданные мной модули.

Я только что переместил импорт ToastModule и MessageService из SharedModule в AppModule, поскольку <p-toast> находится только в app.component. html

...