Incrível lista Angular 2 Incrível lista de fontes em Angular 2 em Português mantido pelo @GDGAracaju

Github

Contribua com nosso repositório no Github ;).

Download ZIP

Faça o download do repositório em formato .zip.

Download .tar.gz

Faça o download do repositório em formato .tar.gz.

HTTP

HTTP é disponibilizado como uma classe injetável, com métodos para executar requisições HTTP. Requisições chamadas retornam um EventEmitter (Emissor de Evento) o qual emitirá uma única Response quando uma resposta é recebida.

O método toRx()do EventEmitter precisa ser chamado para que se obtenha um objeto RxJS Subject (Assunto). EventEmitter não provê combinadores como map, e tem difetentes semânticas para subscrição/observação(subscribing/observing).

Uso

import {Http, HTTP_BINDINGS} from 'angular2/http';

@Component({selector: 'http-app', viewBindings: [HTTP_BINDINGS]})
@View({templateUrl: 'people.html'})
class PeopleComponent {
  constructor(http: Http) {
    http.get('people.json')
      // Obtém o objeto RxJS Subject
      .toRx()
      // Chama o método map (mapeamento) sobre a resposta observável para obter o objeto people (pessoas) mapeamento
      .map(res => res.json())
      // Subescreve-se para ser observável para obter o objeto people mapeado e anexá-lo ao
      // componente
      .subscribe(people => this.people = people);
  }
}

Para usar o EventEmitter retornado via http, simplesmente passe um gerador (Veja “Gerador de Interface na especificação do Async Generator: https://github.com/jhusain/asyncgenerator”) ´para o método observador que o emissor retornou, com métodos opcionais de próximo, lançamento e retorno.

http.get('people.json').observer({next: (value) => this.people = people});

O construção padrão para realizar requisições, XMLHttpRequest, é abstraído como “Backend” (XHRBackend no caso), o qual pode ser simulado (mocked) através de injeção de dependências pela substituição do vínculo XHRBackend, como segue o seguinte exemplo:

import {MockBackend, BaseRequestOptions, Http} from 'angular2/http';

var injector = Injector.resolveAndCreate([
  BaseRequestOptions,
  MockBackend,
  bind(Http).toFactory(
      function(backend, defaultOptions) {
        return new Http(backend, defaultOptions);
      },
      [MockBackend, BaseRequestOptions])
]);
var http = injector.get(Http);
http.get('request-from-mock-backend.json').toRx().subscribe((res:Response) => doSomething(res));