【问题标题】:How can I DRY up my service in Angular 2如何在 Angular 2 中干掉我的服务
【发布时间】:2016-07-22 15:53:14
【问题描述】:

我正在开发 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();
});

我不知道怎么做(有可能吗?)

有什么想法吗?

【问题讨论】:

    标签: service angular parameters get dry


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-18
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 2016-07-11
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多