Typescript 角度2,将查询参数添加到路由url
我试图为angular 2中的每个路由url添加参数。在angular 1中,这很容易,您只需要指定一些http拦截器,您可以在其中定义配置参数,angular将自动将其添加到请求和路由url中Typescript 角度2,将查询参数添加到路由url,typescript,angular2-routing,angular2-services,Typescript,Angular2 Routing,Angular2 Services,我试图为angular 2中的每个路由url添加参数。在angular 1中,这很容易,您只需要指定一些http拦截器,您可以在其中定义配置参数,angular将自动将其添加到请求和路由url中 'request': function(config) { config.params = config.params || {}; config.params.myParam: paramId; return config; }, request api/
'request': function(config) {
config.params = config.params || {};
config.params.myParam: paramId;
return config;
},
request api/endPoint?myParam=paramId
url domain/route?myParam=paramId
我一直在寻找类似angular 2的东西,但我只有这个:
createAuthRequest() {
...
let params: URLSearchParams = new URLSearchParams();
params.set('myParam', paramId);
let requestOptions = new RequestOptions();
requestOptions.search = params;
requestOptions.headers = head;
return requestOptions
}
请求:
getData(): Promise<any> {
return this.http
.get(this.appServices.api + "/endPoint", this.appServices.createAuthRequest())
.toPromise()
.then(response => this.appServices.extractToken(response))
.catch((err)=>{this.appServices.handleError(err);})
}
但我的url没有:
domain/route
我错过了什么?我的错误在哪里?我怎样才能做到这一点:
domain/route?myParam=paramId
这是一种痛苦。我为我的应用程序编写了一个支持拦截器的客户端。npm/GitHub上有一些。问题是它与其他库的集成很糟糕。我最终替换了
Http
,而不是包装它,但这也很危险。@AluanHaddad,我如何才能打败它?我知道每个路由都必须有相同的参数,比如每个请求,用户登录到系统后得到的请求,我只需要将其传递给路由…就个人而言,我会利用一些抽象,比如Http客户端提供拦截器,或者编写我自己的。这种重复是不能接受的。angular团队故意拆除了拦截器,并拒绝重新引入。当然,它们并不完美,但它们没有提供等价物。还有许多其他用例:设置请求/响应转换器、加载指示器等@AluanHaddad damn,这是一个令人头痛的问题。如果你想更头痛的问题,请阅读本文,它还展示了一些想法。如果你想打电话给我,我可以给你发送一些示例代码。这很痛苦。我为我的应用程序编写了一个支持拦截器的客户端。npm/GitHub上有一些。问题是它与其他库的集成很糟糕。我最终替换了Http
,而不是包装它,但这也很危险。@AluanHaddad,我如何才能打败它?我知道每个路由都必须有相同的参数,比如每个请求,用户登录到系统后得到的请求,我只需要将其传递给路由…就个人而言,我会利用一些抽象,比如Http客户端提供拦截器,或者编写我自己的。这种重复是不能接受的。angular团队故意拆除了拦截器,并拒绝重新引入。当然,它们并不完美,但它们没有提供等价物。还有许多其他用例:设置请求/响应转换器、加载指示器等@AluanHaddad damn,这是一个令人头痛的问题。如果你想更头痛的问题,请阅读本文,它还展示了一些想法。如果你想ping我,我可以给你发送一些示例代码。
domain/route?myParam=paramId