我怎样才能在Angular 2中干掉我的服务

时间:2016-07-22 15:53:15

标签: service angular parameters get dry

我正在开发一个Angular 2服务,而我正试图干掉我的代码。我的服务从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();
});

我不确定如何继续这样做(甚至可能吗?)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以传递新的对象参数并分配给包含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;
       }
    });
  }