3 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
關(guān)于您的最后一條評(píng)論,這是我想到的最簡(jiǎn)單的方法:創(chuàng)建一個(gè)具有一個(gè)屬性并且該屬性將保存請(qǐng)求的服務(wù)。
class Service {
_data;
get data() {
return this._data;
}
set data(value) {
this._data = value;
}
}
就如此容易。plnkr中的其他所有內(nèi)容都將保持不變。我從服務(wù)中刪除了請(qǐng)求,因?yàn)樗鼤?huì)自動(dòng)實(shí)例化(我們不這樣做new Service...,而且我不知道通過(guò)構(gòu)造函數(shù)傳遞參數(shù)的簡(jiǎn)單方法)。
所以,現(xiàn)在,我們有了Service,我們現(xiàn)在要做的是在組件中發(fā)出請(qǐng)求并將其分配給Service變量 data
class App {
constructor(http: Http, svc: Service) {
// Some dynamic id
let someDynamicId = 2;
// Use the dynamic id in the request
svc.data = http.get('http://someUrl/someId/'+someDynamicId).share();
// Subscribe to the result
svc.data.subscribe((result) => {
/* Do something with the result */
});
}
}
請(qǐng)記住,我們的Service實(shí)例對(duì)于每個(gè)組件都是相同的,因此,當(dāng)我們?yōu)槠浞峙渲禃r(shí)data,它將反映在每個(gè)組件中。
- 3 回答
- 0 關(guān)注
- 1272 瀏覽
添加回答
舉報(bào)