我的主要目標是擁有一個擁有一張地圖並返回一個觀察值的服務。我想攔截該observable的更新並將數據轉換爲我在UI中顯示的字符串。我在其他地方做這種事情,但似乎不喜歡使用地圖,我不確定發生了什麼。 該服務類似於:當我訂閱時,Angular Observable不會更新。
MyService {
myMap: {[index:string]: string};
add(key:string, value:string) {
this.map[key] = value;
}
remove(key:string) {
delete this.map[key];
}
getMap() Observable<{[index:string]: string}> {
return Observable.of(this.map);
}
}
然後在我的部分我已經試過幾件事情,但似乎無法做到我想要的東西。我的目標是採取任何更新地圖,並將其轉換爲字符串並更新我的UI所以我想是這樣:
MyComponent {
constructor(private myService: MyService) {
}
ngOnInit() {
this.myService.getMap().subscribe((update) => {
// I would think I would consistently get updated here but this
// only hits once. At this point update would be the map and I
// would process the data into the string I want to display in the
// UI
});
}
}
不是真的知道該去哪裏。我總是用陣列來做這類事情,異步 技術,但我卡住了。