Как совместить два метода подсчета предметов по категории? - PullRequest
0 голосов
/ 19 апреля 2020

У меня angular 8 заявка.

И у меня есть два способа показать, сколько предметов для каждой категории. Элементы, поступающие из бэк-энда. Итак, это две категории:

view. html:

  <mat-tab>
          <ng-template mat-tab-label>
            <mat-icon class="goals">grade</mat-icon>
            <span i18n>Goals</span>{{ dossierItemsCountString(itemTypes.Goal) }}
            <a [routerLink]="['../', dossier.id, 'item', 'new', itemTypes.Goal]"
              ><mat-icon class="add_box">add</mat-icon>
            </a>
          </ng-template>
          <ng-container *ngTemplateOutlet="itemList; context: { itemType: itemTypes.Goal }"></ng-container>
        </mat-tab>
        <mat-tab>
          <ng-template mat-tab-label>
            <mat-icon class="action-steps">list</mat-icon>
            <span i18n>Action steps</span>{{ dossierItemsCountString(itemTypes.ActionStep) }}
            <a [routerLink]="['../', dossier.id, 'item', 'new', itemTypes.ActionStep]"
              ><mat-icon class="add_box">add</mat-icon>
            </a>
          </ng-template>
          <ng-container *ngTemplateOutlet="itemList; context: { itemType: itemTypes.ActionStep }"></ng-container>
        </mat-tab>


, и это две функции, отвечающие за отображение элементов по категориям:


  dossierItemsCountBy(itemType: DossierItemTypeDto) {
    return this.typeSearchMatches[itemType.toString()] || { total: 0, matches: 0 };
  }

  dossierItemsCountString(itemType: DossierItemTypeDto) {
    const count = this.dossierItemsCountBy(itemType);

    if (this.hasSearchQuery) {
      return `(${count.matches}/${count.total})`;
    } else {
      return `(${count.total})`;
    }
  }

Но я думаю, что два метода могут быть написаны в одном методе. Или, может быть, вы можете сделать из него Трубу?

Итак, мой вопрос: какой подход лучше? И как это сделать?

Спасибо

1 Ответ

1 голос
/ 19 апреля 2020

Я не знаю, как ответить на вопрос «каков наилучший подход?».

В любом случае модификация dossierItemsCountString () должна работать так:

...