Как добавить счетчик в угловых 6? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть функция, которая получает комментарии с сервера, я хотел бы отобразить общее количество комментариев, доступных на сервере.

Вот функция в файле .ts:

 this.activeRouter.params.subscribe(params => {
   // tslint:disable-next-line:prefer-const
   let id = params['id'];
   this.userService.getComments(id)
     .pipe(
       map(data => data.sort((a, b) => new Date(b.localTime).getTime() - new Date(a.localTime).getTime()))
      )
      .subscribe(data => this.comments = data);
});

Вот функция get в сервисе

  getComments (id: number) {
    return this.http.get<Comment[]>(this.commentsUrl);
  }

Вот HTML-код для отображения комментариев

 <div class="comments-description" *ngFor="let comment of comments">
        <span class="comments_count">(353)</span>
      <div class="comments-photo">
        <img src="https://randomuser.me/api/portraits/men/84.jpg" alt="">
      </div>
      <div class="comments_wrapper">
        <div class="comments_details">
          <h1>{{comment.author}}</h1>
          <span class="days">1d</span>
        </div>
        <div class="comments_text">
          <p>{{comment.description}} </p>
        </div>
      </div>
    </div>

Ответы [ 5 ]

0 голосов
/ 29 октября 2018

Обновите свой API и получите количество комментариев с помощью API и покажите количество комментариев.

0 голосов
/ 29 октября 2018

Решение:

При получении данных комментариев с сервера вам необходимо вернуть общее количество комментариев вместе с новыми данными.

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

Примечание: Вы должны прочитать счетчик с сервера и вернуть результат в том же API или сервисе

0 голосов
/ 29 октября 2018

Такой счетчик должен быть на стороне сервера.

Например, пост имеет 10000 комментариев.

1 запрос не будет получать их все, только часть (страницу).

И нехорошо получать их всех только для того, чтобы узнать количество.

Таким образом, ответ должен содержать поле 'count'.

0 голосов
/ 29 октября 2018

Если вы получите все комментарии в ответе, вы можете использовать comments.length

<span class="comments_count">{{comments.length}}</span>

Но лучшая практика - получить это со стороны API. Добавьте еще одно поле в ответ API для подсчета комментариев.

0 голосов
/ 29 октября 2018

почему бы просто не использовать длину

<span class="comments_count">{{comments.length}}</span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...