【发布时间】:2018-07-27 20:25:58
【问题描述】:
我的 JSON 文件结构如下:
[
{id: 1,
title: "First Element"
},
{id: 2,
title: "Second Element"
},
{id: 3,
title: "Third Element"
}
]
我已经能够通过调用类似的方法成功检索整个 JSON 数组(文件)
组件.ts:
this.dataService.getAll()
.subscribe(
(data: Book[]) => this.myData = data,
(err: any) => console.log(err)
);
服务.ts
getAll(): Observable<any> {
return this.http.get<any>(this.apiURL)
其中 apiURL 是我的库中本地 json 文件的路径。如果可能,我怎样才能只获得 id 为 1 且标题为“第一个元素”的第一个元素?
我一直在尝试这个:
getBookById(title: String) Observable<Book> {
return this.http.get<Book>(this.apiURL + `/${title}`)
除了使用 Book 而不是 Book[] 之外,使用相同的 component.ts 方法。但它失败并出现 HTTPGet 错误,说它找不到它。这是有道理的,因为我觉得我在标题和 URL 之间缺少一个字段(用于访问或解析每个元素),但是我缺少一些语法还是其他什么?感谢您的帮助和时间。
【问题讨论】:
-
您调用的后端是否允许按标题检索书籍?如果后端不理解你传递给它的 URL,它会产生一个 not found 错误。
-
因此,目前 JSON 数据存储在我的 Angular 项目目录中的本地文件中,例如“../../assets/data/topics.json”,这就是 apiURL 所指的内容。