angular - 如何使用/导入http模块?

标签 angular angular2-http

我一直在玩 Angular 2 Quickstart .

如何在 Angular 2 中使用/导入 http 模块?

我看过Angular 2 Todo's.js , 但它不使用 http 模块。

我已经将 "ngHttp": "angular/http", 添加到 package.json 中的 dependencies 因为我听说过 Angular 2 有点模块化。

最佳答案

最后更新时间:2016 年 5 月 11 日
Angular 版本:2.0.0-rc.2
typescript 版本:1.8.10

Live working example .

如何将 Http 模块与 Observable 一起使用的简单示例:

import {bootstrap} from '@angular2/platform-browser-dynamic';
import {Component, enableProdMode, Injectable, OnInit} from '@angular/core';
import {Http, Headers, HTTP_PROVIDERS, URLSearchParams} from '@angular/http';
import 'rxjs/add/operator/map';

const API_KEY = '6c759d320ea37acf99ec363f678f73c0:14:74192489';

@Injectable()
class ArticleApi {
  constructor(private http: Http) {}
  
  seachArticle(query) {
    const endpoint = 'http://api.nytimes.com/svc/search/v2/articlesearch.json';
    const searchParams = new URLSearchParams()
    searchParams.set('api-key', API_KEY);
    searchParams.set('q', query);
    
    return this.http
      .get(endpoint, {search: searchParams})
      .map(res => res.json().response.docs);
  }
  
  postExample(someData) {
    const endpoint = 'https://your-endpoint';
    const headers = new Headers({'Content-Type': 'application/json'});
    
    return this.http
      .post(endpoint, JSON.stringify(someData), { headers: headers })
      .map(res => res.json());
  }
}

@Component({
  selector: 'app',
  template: `<ul>
                <li *ngFor="let article of articles | async"> {{article.headline.main}} </li>
             </ul>`, 
  providers: [HTTP_PROVIDERS, ArticleApi],
})
class App implements OnInit {
  constructor(private articleApi: ArticleApi) { }
  
  ngOnInit() {
    this.articles = this.articleApi.seachArticle('obama');
  }
}

enableProdMode();
bootstrap(App)
  .catch(err => console.error(err));

关于angular - 如何使用/导入http模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28910864/

相关文章:

Angular2 - 单元测试 Observable 错误 "Cannot read property ' 未定义订阅'

angular - 我可以使用 angular2 组件中的 EventEmitter 传递变量吗?

javascript - 如何使用 Http.get 从我的项目中获取数据?

spring - 使用 Angular2 将文件上传到 REST API

java - 在 Angular 2 中设置授权 header

angular - 使用 Angular react 形式的现有数组初始化表单数组

angular - 服务未在component.ts中捕获的错误

javascript - Angular中关闭浏览器后执行API

api - 取消/杀死 http api 调用 Angular 2

typescript - 异步 HTTP 请求的顺序