【发布时间】:2018-02-01 11:47:38
【问题描述】:
目标是生成如下网址:
/powerPlants?onlyActive=true&page=1
我的 Typescript 中有以下功能!
allPowerPlants(config: PowerPlantListConfig): Observable<PowerPlant[]> {
// Convert any filters over to Angular's URLSearchParams
const params: URLSearchParams = new URLSearchParams();
Object.keys(config.filters)
.forEach((key) => {
params.set(key, config.filters[key]);
});
return this.apiService
.get('/powerPlants'),
.map(data => data);
}
关于如何从传入的配置(即 PowerPlantListConfig)生成此动态 url 的任何建议
PowerPlantListConfig如下:
export class PowerPlantListConfig {
type = 'all';
filters: {
page?: number,
onlyActive?: boolean
} = {};
}
编辑:作为一个快速而肮脏的尝试,这是我尝试的(通过硬编码值)
import {Http, Response} from '@angular/http';
makeRequest(): void {
const params: URLSearchParams = new URLSearchParams();
params.set('onlyActive', 'false');
params.set('page', '1');
this.loading = true;
this.http.request('http://localhost:9000/powerPlants', {params: params})
// this.http.request('http://jsonplaceholder.typicode.com/posts/1')
.subscribe((res: Response) => {
console.log(JSON.stringify(res.json()));
this.data = JSON.stringify(res.json());
this.loading = false;
});
}
但这似乎没有生效,因为我看到没有调用 URL 参数的 URL!
【问题讨论】:
-
感谢您的建议!
-
你能帮我解决我的问题吗?
-
不,抱歉。我不熟悉 angular 4
-
我主要是后端开发人员,对我来说,这就像说我不知道 Scala 2.12,因为我只知道 Scala 2.11!没有冒犯的意思,但这就是它使用 Angular 编程的目的。它的变化如此之大,以至于您必须从每个新版本开始学习它!
标签: angular rest http url-parameters