Вложенный модельный подход (Angular 7) - PullRequest
0 голосов
/ 01 декабря 2018

Каков наилучший подход к созданию «вложенных» моделей?

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

ModelA:

export class ModelA{
 id: number;
 ownerId: number;
 owner: ModelB;

  constructor(obj?: any) {
    Object.assign(this, obj);

    //Bind here?
  }
}

В службе ModelA:

  public load(id: number | string) {
    this.http.get(`${this.baseUrl}/${id}`).pipe(
      catchError(this.handleError),
      map(res => new ModelA(res))
    ).subscribe(data => {
      //Bind here?
    });
  }

В настоящее время мой веб-API возвращает вложенные данные, поэтому работает связывание ModelB внутри ModelA.Проблема в том, что я хочу, чтобы служба выполняла привязку для ModelB, чтобы подписаться / обнаружить изменения в объекте.

Я полагаю, что могу сделать это двумя способами.

  1. В Service для ModelA функция загрузки связывает ModelB, вызывая ее службу.
  2. В конструктореМодель А.

Есть ли другой способ сделать это?Это пример, и у меня есть модели, относящиеся к 5-6 другим моделям, и если я буду использовать этот способ, в подписке будет много кода.Используя конструктор в ModelA, и я не могу получить ссылку на службу (для ModelB) там, причину инъекции, а также это кажется неэффективным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...