Arrays 如何使两个服务有角度

Arrays 如何使两个服务有角度,arrays,angular,Arrays,Angular,我有一个数组,我需要显示这个数组中的几个随机项。 现在代码看起来是这样的,但我认为应该有两个不同的服务,一个在另一个中。 我的组件如下所示: items: Item[]; randomItems: Item[]; ngOnInit() { this.someService.getItems().subscribe((items) => { this.items = items; }); this.randomIndex(this.items

我有一个数组,我需要显示这个数组中的几个随机项。 现在代码看起来是这样的,但我认为应该有两个不同的服务,一个在另一个中。 我的组件如下所示:

  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
}
 <ul *ngFor="let item of items">
     <li>{{ item.id }}</li>
 </ul>
我的html如下所示:

  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
}
 <ul *ngFor="let item of items">
     <li>{{ item.id }}</li>
 </ul>

  • {{item.id}

  • 如何使用此代码创建两个不同的服务?

    首先将对
    随机索引的调用移动到订阅回调内部

    ngOnInit() {
      this.someService.getItems().subscribe((items) => {
        this.items = items;
        this.randomIndex(this.items);
      });
    }
    
    关于你的问题:

    如何使用此代码创建两个不同的服务


    您不需要基于所显示的代码。如果你这样做了,那么你重构它的方式是主观的。您的主要缺点是没有等待服务响应对结果执行某些操作,这很容易解决。

    首先将调用移动到
    randomIndex
    到订阅回调内部

    ngOnInit() {
      this.someService.getItems().subscribe((items) => {
        this.items = items;
        this.randomIndex(this.items);
      });
    }
    
    关于你的问题:

    如何使用此代码创建两个不同的服务


    您不需要基于所显示的代码。如果你这样做了,那么你重构它的方式是主观的。您的主要缺陷是,您没有等待服务对结果做出响应,这很容易解决。

    可能重复@Tom Hello Tom。我一直无法理解你的问题。你能告诉我你想建立什么样的服务吗?可能是@Tom Hello Tom的复制品。我一直无法理解你的问题。你能告诉我你想建立什么样的服务吗?@Tom-很乐意帮忙。@Tom-很乐意帮忙。