Создать общий метод для нескольких компонентов, использующих сервис - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть несколько методов для сортировки разных таблиц:

sortFruits(sort: Sort) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    this.data.fruits= orderBy(this.data.fruits, [sort.active], [direction]);
  }

sortFamily(sort: Sort) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    this.data.family= orderBy(this.data.family, [sort.active], [direction]);
  }

Я пытался сделать универсальный метод для службы:

sortTable(sort: Sort, data: any) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    return orderBy(data, [sort.active], [direction]);
    // return data;
  }

И напрямую вызовите эту услугу в представлении компонента:

 <table matSort (matSortChange)="matSort.sortTable($event, data.fruits)">

Но сортировка не работает: - /, что я сделал не так?

Спасибо

1 Ответ

0 голосов
/ 25 апреля 2019

ОК. Это работает, мне не хватало переназначения переменной в представлении:

<table matSort (matSortChange)="data.fruits = matSort.sortTable($event, data.fruits)">

И возвращаем значение данных в сервисе

sortTable(sort: Sort, data: any) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    data = orderBy(data, [sort.active], [direction]);
    return data;
  }

Спасибо: -)

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