Как изменить свойство компонента в Angular всякий раз, когда происходит изменение в внутренней базе данных (без ручного refre sh) - PullRequest
0 голосов
/ 27 марта 2020

У меня есть соответствующий метод для установки значения свойства status , для которого я подписываюсь в магазине для получения значения. Но в моем случае я хочу, чтобы это свойство автоматически обновлялось при каждом изменении в моей внутренней БД (в основном это изменение в БД). Как я могу сделать это без обновления страницы вручную? Pi c: Значок в первом столбце, как показано, необходимо изменить на другой (что для меня делает метод getLegend ()) всякий раз, когда происходит изменение в DB

HTML:

 <data-table-column [property]="'status'">
    <ng-template #dataTableCell let-item="item" let-column="column" let-row="row">
      <div>
        <img alt="icon" class="legendIcon" src="{{ getLegend(item[column.property]) }}" />
      </div>
    </ng-template>
  </data-table-column> 

Мой вызов эффектов:

 loadMyList$ = createEffect(() =>
this.actions$.pipe(
  ofType(homeActions.loadInit),
  switchMap(() =>
    this.homeService.getMyList().pipe(
      map((data: any) =>
        homeActions.loadListSuccess({
          payload: data
        })
      ),
      catchError(error => {
        if (error.status === 404) {
          return of(homeActions.loadListSuccess({ payload: { records: [] } }));
        }
        return of(homeActions.loadListFailure({ error: error }));
      })
    )
  )
)
);

Мой сервисный вызов выглядит так:

getMyList(): Observable<any> {
const url = this.constructGlobalUrl('/api/v1/listdata');
const options = {
  params: new HttpParams().append('canShowSpinner', 'true')
};
return this.http.get<any>(url, options);

}

Пожалуйста, прокомментируйте, если вам нужно что-то еще!

...