Angular 2+中的基本REST

时间:2017-11-21 10:52:28

标签: angular rest

我在Angular中可以拥有的最基本且最令人头疼的休息实现是什么?

我已经厌倦了这个:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit {

  restCall(term:string, id:string) {
    let promise = new Promise((resolve, reject) => {
      let apiURL = `http://localhost:3000/todos$/{term}/${id}`;
      this.http.get(apiURL)
        .toPromise()
        .then(
          res => { // Success
            this.results = res.json().results;
            resolve();
          },
          msg => { // Error
            reject(msg);
          }
        );
    });
    return promise;
  }
}

后面是这样的setrp:localhost:3000 / todos 可能的调用:get,get / id,post,put / id,delete / id

我想通过这个网址http://localhost:3000/todos/${term}/${id}我将所有剩余的调用重构为一种方法。

我所有的快乐都停在这里:

enter image description here enter image description here

我是完全关闭还是走错路?

1 个答案:

答案 0 :(得分:2)

在角度2或更高的角度,我在服务中添加所有的http调用。但要修复错误,你应该试试这个。

import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http';
@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit {

  results: any;

  constructor(private http: Http) { }

  restCall(term:string, id:string) {
    let promise = new Promise((resolve, reject) => {
      let apiURL = `http://localhost:3000/todos$/{term}/${id}`;
      this.http.get(apiURL)
        .toPromise()
        .then(
          res => { // Success
            this.results = res.json().results;
            resolve();
          },
          msg => { // Error
            reject(msg);
          }
        );
    });
    return promise;
  }
}

我导入了Http服务并在构造函数中声明它。 结果变量不是局部变量,因此您应该在构造函数之前声明它。