gpt4 book ai didi

angular - 从 Angular http get api 调用排序数据

转载 作者:太空狗 更新时间:2023-10-29 17:49:58 25 4
gpt4 key购买 nike

这看起来应该是一件非常微不足道的事情,但我真的在努力为一个简单的问题制定一个简洁的非 hacky 解决方案。

我的 http.get(...对我的服务的 Angular 调用带回一个 Observable - 这是一个 T 项目流(在我用 response.json() 映射之后)

Observable 是我的组件的一个属性。我有一个 <select>组件模板中的元素带有 <option>通过 *ngFor="let item of myObservable | async" 创建的元素我的模板中的代码。

这已经创建了一个很好的选择元素,其中包含我希望在浏览器中很好地显示的所有值:)

现在有人要求我按字母顺序对 select 语句中的选项进行排序。

我不想创建排序管道,因为 Angular 团队建议不要这样做,而且 Observable 似乎天生就是不可排序的。

我试图将 Observable 转换为一个简单的结果数组 - 但这似乎也是不可能的。

那么我该如何实现这个简单的事情呢?我的 JSON 服务返回 20 个左右的 JSON 对象,我似乎无法弄清楚如何让它们按其中一个属性排序。

感谢您的帮助。

最佳答案

OK,我解决了(如果有人感兴趣的话;

我的服务原始代码是这样的:

  public getAllItems(): Rx.Observable<DataItem> {
var returnVar = this.http.get("http://localhost:8090/api/rest/dataitem")
.map(res => {
return res.json()
});
return returnVar;

但是后来我把observable改成了数组类型的observable,然后在map里排序

public getAllItems(): Rx.Observable<DataItem[]> {
var returnVar = this.http.get("http://localhost:8090/api/rest/dataitem")
.map(res => {
var ret = <DataItem[]>res.json();
ret.sort((a,b) => a.name < b.name ? -1 : 1);
return ret;
} );

我没有意识到您可以将响应对象转换为单个项目或整个数组。

感谢所有试图提供帮助的人。

关于angular - 从 Angular http get api 调用排序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44720903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com