我有一個服務類應該調用的API,並返回結果:注射和使用HTTP Angular2
import {Component, View} from 'angular2/angular2';
import { Inject} from 'angular2/di';
import {Http} from 'angular2/http';
var httpMap = new WeakMap<ScheduleService, Http>();
export class ScheduleService {
meetings: Array<any>;
http: any;
constructor(@Inject(Http) http:Http){
httpMap.set(this, http);
this.http = http;
//http.get('/api/sample')
// .map(response => response.json())
// .subscribe(data => {
// this.serverData = data;
// });
}
getMeetings(){
var path = '/api/meetings/';
return httpMap.get(this).get(path);
}
}
服務類被稱爲正確注射。我遇到的問題是,當我撥打getMeetings
方法時,它永遠不會向/api/meetings
發出請求。如果你們注意到構造函數中有一個get
請求/api/sample
,如果我取消註釋並運行該程序,那麼它的工作將會非常完美,因此我會檢查我的network
選項卡,我可以看到請求已發出。
我對弱引用的知識確實很差,所以我無法回答爲什麼這種方式不起作用,那麼,爲什麼不在你的'getMeetings()'方法中使用'this.http'? –
@EricMartinez它基本上是一樣的東西。我只是在看一些正在做映射的博客,我只是覺得它看起來很髒,所以我試圖將它設置爲對象的屬性,看看它是否工作,它確實如此 – ThreeAccents