Ich habe Dienst in Angular 2 wie folgt definiert:Wie feuern Sie eine Ajax-Anfrage in Angular 2?
import { Inject } from 'angular2/angular2';
import { Http ,Headers , HTTP_PROVIDERS } from 'angular2/http';
export interface CourseInterface {
courseId: number,
coursePrice: number,
authorName: string
}
export class CourseDetailsService {
http: Http;
constructor(@Inject(Http) Http) {
console.log(Http)
this.http = Http;
}
load() {
console.log("came here in service")
var headers = new Headers();
headers.append('Authorization', <my username password>);
this.http.get('https://some.api',{
headers : headers
}).map(res => console.log("Response came!!!"))
console.log("done . . .")
}
}
und in einer anderen Komponente, verwende ich diesen Dienst so:
import {CourseInterface, CourseDetailsService} from '../services/course';
@Component({
selector: 'dashboard',
viewBindings: [CourseDetailsService]
})
@View({
template: `
<h1>Dashboard page laoded</h1>
`
})
export class Dashboard {
constructor(service: CourseDetailsService) {
service.load();
}
}
und während der Anwendung läuft, kann ich meine Dashboard
Komponente sehen wird auf dem Bildschirm angezeigt. Aber von der CourseDetailsService
werden keine HTTP-Aufrufe ausgelöst.
Aber in der Konsole folgenden gedruckt, um zu sehen, ich könnte die Lage: jede Anfrage an die angegebenen URL gefeuert
came here in service
done . . . .
Aber in meinem Chrom Netzwerk Tab, konnte mich nicht in der Lage zu sehen. Wo mache ich Fehler?
Ich bin mit Angular 2 Alpha 47
Der Teil, der die Anfrage auslöst, ist der 'subscribe'. Geben Sie also this.http.get(). Map() 'zurück und dann in Ihrer Komponente' service.load(). Subscribe ((result) => ...) '. –
@EricMartinez: Also gibt es im Grunde ein 'Observable' zurück? Zu welchen muss ich mich anmelden und meine Streams bekommen? –
@Antys Sie haben absolut recht! : D –