我有一个数组,我需要显示该数组中的几个随机项。 现在的代码看起来像这样,但是我认为应该简单地应该有两种不同的服务,一种是另一种。 我的组件看起来像这样:
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>
如何通过此代码提供两种不同的服务?
答案 0 :(得分:0)
首先将对randomIndex
的调用移到订阅回调中。
ngOnInit() {
this.someService.getItems().subscribe((items) => {
this.items = items;
this.randomIndex(this.items);
});
}
关于您的问题:
如何通过此代码提供两种不同的服务?
您不需要基于显示的代码。如果执行此操作,则主观决定其重构方式。您的主要缺陷是您没有等待服务来响应结果,因此很容易解决。