Задать вопрос
@jxs

Как отфильтровать данные по id для определенного элемента?

Есть страница на которой отображается определенный "object". И я хочу на странице этого "object" отобразить еще несколько его "object" которые связаны по дочерним идентификаторам.

Вот небольшой пример JSON:

[{"object_id":1128,"ch_objects_id":null, "name":TestTitul},
{"object_id":2341,"ch_objects_id":1128, "name":Test2}]


Вот на данный момент моя версия как я хотел сделать, но она не правильная и не рабочая(отображается пустой массив).

service:

get_filter_show_Objects(): Observable<Object[]> {
    return this.authService.get('objects')
    .map((response: Response) => <Object[]>response.json()
    .filter((object) => object.object_id == object.ch_objects_id))
}

getObject(id: number) {
    return this.authService.get('objects' + "/" + id + '.json').catch(this.handleError);
}

component:

objects: Array<Object>;
  id: number;
  routeId: any;
  returnUrl: string;
  public errorMsg;
  @Input() object: Object;

      ngOnInit() {
        this.loadObjects();

        this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/object';
        this.routeId = this.route.params.subscribe(
          params => {
            this.id = +params['id'];
          }
        )
        let objectRequest = this.route.params
          .flatMap((params: Params) =>
            this.servObject.getObject(+params['id' ]));
        objectRequest.subscribe(response => this.object = response.json());
      }

      private loadObjects() {
        this.servObject.get_filter_show_Objects().subscribe(
          (data: Object[]) => {
            console.log(data);
            this.objects = data;
          }
        );
      }


Как правильно реализовать фильтр который отобразит список данных и будут связаны по дочернему id для страницы определенного "object"?
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@assets
Back-end developer
Не проще ли все данные через backend формировать через связь?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Крона Лабс Екатеринбург
от 200 000 ₽
TravelLine Санкт-Петербург
от 250 000 ₽
TRIBE Ярославль
от 80 000 до 120 000 ₽