循环观察

时间:2018-12-10 13:32:08

标签: html angular

在应用程序的前端部分使用方法

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber)

返回Observable。在我的后端,此方法返回一个List<String>。 我的问题是:如何遍历此字符串列表的元素?

3 个答案:

答案 0 :(得分:1)

如果您有一个观测站,则必须订阅它以获取实际值。在您自己决定的范围内,您可以在此处映射或循环您的值。

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber).subscribe(allowedCases => {
  allowedCases.map(allowedCase => {
    // your code here
  });
});

答案 1 :(得分:1)

如果您使用此List<String>可以在HTML部件上显示,则可以结合使用async*ngFor以获得所需的结果。

//in your html for example
<ul>
  <li *ngFor="let item of (data$ | async)"> {{ item }} </li>
</ul>

//in your component

//usual angular stuff
export class MyComponent implements OnInit {
  data$: Observable<String[]>;
  constructor(private knowledgeMan: YourServiceInterface){}

  ngOnInit() {
    data$ = this.knowledgeMan.getUserAllowedCases(Item.ItemNumber);
  }
}

如果您只是这样做是为了计算一些值,则可以执行以下操作。

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber).pipe(
  flatMap(),
  map(item => //do something with item here)
).subscribe();

答案 2 :(得分:0)

如果您说getUserAllowedCases返回string[],则可以执行以下操作:

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber).subscribe(x => {
  // assuming x is string[]
  for (const item of x) {
     // use item
  }
});