如何将url参数(查询字符串)作为
传递给HTTP请求let params: URLSearchParams = new URLSearchParams();
params.set('pageId', 0);
params.set('activeFilter', 1);
let requestOptions = new RequestOptions();
requestOptions.search = params;
return this._http.get("http://testsite.com/cats/page/", requestOptions ).map(res => res.json());
在我的requestOptions引用中我希望传递的内容如下:pageId /:activeFilter。
最后我需要构建一个url,使用此url(http://testsite.com/cats/page/:pageId/:activeFilter)// pageId = 0,activeFilter = 1
来调用我的rest api服务器我必须只绑定值而不是整个字符串?
我尝试了很多。但它没有像我预期的那样出现,这就是我在服务器控制台中得到的/ cats / page /?pageId = 0& activeFilter = 1。
有什么建议吗?无法找到我错的地方
答案 0 :(得分:2)
ECMA6提供了一个非常有趣的功能" String Interpolation"其中string可以有占位符,我们根据需要替换它们。
<强>实施例强>
let first = 'Jane';
let last = 'Doe';
console.log(`Hello ${first} ${last}!`);
在您的情况下,它将是:
let param1 = 'someval1';
let param2 = 'someval2'
this._http.get(`http://testsite.com/cats/page/${param1}/${param2}`, requestOptions ).map(res => res.json());
答案 1 :(得分:1)
如果你想将这些值传递给url,你应该将它们直接放入url字符串中,如下所示:
@Injectable()
export class ExampleService {
constructor(
private http: Http
) { }
getPage(pageId: number, activeFilter: number) {
return this.http.get(`http://testsite.com/cats/page/${pageId}/${activeFilter}`)
.map(res => res.json())
}
}
请注意,您正在使用``来允许字符串插值。
您可以通过传入pageId和activeFilter来动态调用此服务方法,如下所示:
从'@ angular / core'导入{Component,OnInit}; 从'./example.service'导入{ExampleService};
@Component({
selector: 'example',
})
export class ExampleComponent implements OnInit {
constructor(
private exampleService: ExampleService
) { }
currentPageId = 0;
activeFilter = 1;
ngOnInit() { }
getPage() {
this.exampleService.getPage(this.currentPageId, this.activeFilter)
}
}
希望澄清事情。祝你好运!