Как сделать два сервиса с угловым - PullRequest
1 голос
/ 15 марта 2019

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

  items: Item[];
  randomItems: Item[];

  ngOnInit() {
    this.someService.getItems().subscribe((items) => {
      this.items = items;
    });
    this.randomIndex(this.items);
  }

  randomItems(items: Item[]) {
    return this.randomItems = _.sample(items, _.random(9));
  }
}

interface Items {
  id: number,
  title: string,
  body: string
}

мой HTML выглядит так:

 <ul *ngFor="let item of items">
     <li>{{ item.id }}</li>
 </ul>

Как я могу сделать два разных сервиса из этого кода?

1 Ответ

0 голосов
/ 15 марта 2019

Сначала переместите вызов на randomIndex внутри обратного вызова подписки.

ngOnInit() {
  this.someService.getItems().subscribe((items) => {
    this.items = items;
    this.randomIndex(this.items);
  });
}

О вашем вопросе:

Как я могу сделать два разных сервиса из этого кода?

Вам не нужно основываться на коде, который вы показали. Если вы делаете это, это субъективно в отношении того, как вы это сделаете. Ваш главный недостаток в том, что вы не ждете, пока служба ответит, чтобы что-то сделать с результатом, и это легко решить.

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