我怎样才能在 Angular 2 中完成我的服务
How can I DRY up my service in Angular 2
我正在开发 Angular 2 服务,我正在努力整理我的代码。我的服务 returns 来自 RESTful API(GET 请求)的数据。目前我只发送一个参数(auth_token)但是我如何处理使用额外参数调用我的服务?
这是我对服务的基本调用:
this._dashboardService.getData('users')
.subscribe(usersData=> {
if (usersData.ok) {
this.users= usersData.json();
});
这是我的服务:
getData(data) {
let authToken = localStorage.getItem('auth_token');
let params = new URLSearchParams();
params.set('auth_token', authToken);
return this._http
.get(this._url+data,{ search: params })
.map(data=> {
if (data.status===200) {
return data;
}
});
}
我想让这段代码起作用:
this._dashboardService.getData('users',oneParameter)
.subscribe(usersData=> {
if (usersData.ok) {
this.users= usersData.json();
});
我不确定如何进行(甚至可能吗?)
有什么想法吗?
您可以传递新对象参数并分配给另一个包含 auth_token 的对象。
getData(data, anotherParams) {
let params = new URLSearchParams();
let authToken = localStorage.getItem('auth_token');
var myObject = Object.assign({'auth_token':authToken}, anotherParams);
for (var name in myObject) {
params.set(name, myObject[name]);
}
return this._http
.get(this._url+data,{ search: params })
.map(data=> {
if (data.status===200) {
return data;
}
});
}
我正在开发 Angular 2 服务,我正在努力整理我的代码。我的服务 returns 来自 RESTful API(GET 请求)的数据。目前我只发送一个参数(auth_token)但是我如何处理使用额外参数调用我的服务?
这是我对服务的基本调用:
this._dashboardService.getData('users')
.subscribe(usersData=> {
if (usersData.ok) {
this.users= usersData.json();
});
这是我的服务:
getData(data) {
let authToken = localStorage.getItem('auth_token');
let params = new URLSearchParams();
params.set('auth_token', authToken);
return this._http
.get(this._url+data,{ search: params })
.map(data=> {
if (data.status===200) {
return data;
}
});
}
我想让这段代码起作用:
this._dashboardService.getData('users',oneParameter)
.subscribe(usersData=> {
if (usersData.ok) {
this.users= usersData.json();
});
我不确定如何进行(甚至可能吗?)
有什么想法吗?
您可以传递新对象参数并分配给另一个包含 auth_token 的对象。
getData(data, anotherParams) {
let params = new URLSearchParams();
let authToken = localStorage.getItem('auth_token');
var myObject = Object.assign({'auth_token':authToken}, anotherParams);
for (var name in myObject) {
params.set(name, myObject[name]);
}
return this._http
.get(this._url+data,{ search: params })
.map(data=> {
if (data.status===200) {
return data;
}
});
}