Angular 2
CRUD в Angular2 с остальным API
Поиск…
Синтаксис
@Injectable () // Указывает, что инжектор зависимостей вводит зависимости при создании экземпляра этой службы.
request.subscribe () // Это где вы на самом деле сделать запрос. Без этого ваш запрос не будет отправлен. Также вы хотите прочитать ответ в функции обратного вызова.
constructor (private wikiService: WikipediaService) {} // Поскольку и наша служба, и ее зависимости внедряются инжектором зависимостей, это хорошая практика, чтобы внедрить службу компоненту для модульного тестирования приложения.
Читайте из Restful API в Angular2
Чтобы отделить API-интерфейс от компонента, мы создаем клиент API как отдельный класс. Этот примерный класс делает запрос к API Википедии, чтобы получить случайные статьи wiki.
import { Http, Response } from '@angular/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
@Injectable()
export class WikipediaService{
constructor(private http: Http) {}
getRandomArticles(numberOfArticles: number)
{
var request = this.http.get("https://en.wikipedia.org/w/api.php?action=query&list=random&format=json&rnlimit=" + numberOfArticles);
return request.map((response: Response) => {
return response.json();
},(error) => {
console.log(error);
//your want to implement your own error handling here.
});
}
}
И иметь компонент, чтобы потреблять наш новый клиент API.
import { Component, OnInit } from '@angular/core';
import { WikipediaService } from './wikipedia.Service';
@Component({
selector: 'wikipedia',
templateUrl: 'wikipedia.component.html'
})
export class WikipediaComponent implements OnInit {
constructor(private wikiService: WikipediaService) { }
private articles: any[] = null;
ngOnInit() {
var request = this.wikiService.getRandomArticles(5);
request.subscribe((res) => {
this.articles = res.query.random;
});
}
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow