angular - 如何在 Angular 2 中调用简单的 http GET 服务

标签 angular angular2-http

我正在学习 Angular 2,我正在尝试在页面加载时为我拥有的 JSON 数据调用一个简单的 HTTP Get 请求,并在页面加载时操作该 JSON。谁能用一些基本示例告诉我该怎么做?我在网上看到的大部分解决方案都来自 Beta 版。

最佳答案

像这样创建一个服务:

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/Rx';
import {Observable} from 'rxjs/Rx'

export class MyService {
  constructor(public http: Http) { }

  private extractData(res) {

    if (res.status < 200 || res.status >= 300) {
      throw new Error('Bad response status: ' + res.status);
    }

    // console.log(res.json());
    this.serviceData = (res.json());
    return this.serviceData || {};
  }

  loaddata(): Observable<any> {
    return this.http.get(this.server_url) // define a variable server_url to assign the requested url
      .map(this.extractData);
  }
}

现在在组件的 ngOnInit 方法中通过调用此服务方法获取值。

class MyComponent{
    constructor(public _myService: MyService)
    ngOnInit(){
      this._myService.loaddata().subscribe(data => {
      // do something with the data
    })

   }
}

关于angular - 如何在 Angular 2 中调用简单的 http GET 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099561/

相关文章:

Javascript 传播运算符替代

angular - 如何从 nrwl 工作区 libs 文件夹延迟加载模块?

angular 4 universal - 如果浏览器包含模块

angular - 你如何在 Angular 2 中发布一个 FormData 对象?

javascript - 如何使用 Angular 2发出链接请求(不同数量)

javascript - 实现在 Angular2 中对对象数组进行排序

angular - WebView2 与 Angular 兼容吗?

Angular 2. Http 映射\订阅问题

angular - 订阅 Angular 2 Http 两次?

angular - 使用 angular2 发送身份验证凭据