Ho servizio di cui al angolare 2 in questo modo:Come attivare una richiesta Ajax 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 . . .")
}
}
e in un altro componente, ho utilizzare questo servizio come questo:
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();
}
}
e durante l'esecuzione dell'applicazione, posso vedere il mio componente Dashboard
viene visualizzato sullo schermo. Tuttavia, dallo CourseDetailsService
, non vengono emesse chiamate http.
Ma nella console ho potuto in grado di vedere all'interno stampato:
came here in service
done . . . .
Ma nella mia scheda reti cromo, non ho potuto in grado di vedere qualsiasi richiesta sparato all'URL specificato. Dove sto sbagliando?
che sto usando angolare 2 Alpha 47
La parte che attiva la richiesta è il 'subscribe'. Quindi restituisci this.http.get(). Map() ', quindi nel tuo componente fai' service.load(). Subscribe ((result) => ...) '. –
@EricMartinez: Quindi restituisce sostanzialmente un 'Observable'? A cui devo iscrivermi e ottenere i miei stream? –
@Ants Hai assolutamente ragione! : D –