我怎样才能在 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;
       }
    });
  }