我下面這個庫工作本地存儲並使用webstorage檢索它們。然而,刷新以後,我的價值觀恢復到舊的,其被存儲在內存中,data.service.ts本地存儲不刷新後使用Angular2內存數據
bot.component.html:
<tr *ngFor="let bot of bots" routerLink="/botlevelup/{{bot.id}}">
<td>{{bot.id}}</td>
<td>{{bot.lastLevel}}</td>
<td>{{bot.secondLevel}}</td>
</tr>
內存-data.service
。 TS:
import { InMemoryDbService } from 'angular-in-memory-web-api';
export class InMemoryDataService implements InMemoryDbService {
createDb() {
const bots = [
{"id":1,"lastLevel":5},
{"id":2,"lastLevel":5},
{"id":3,"lastLevel":5}
];
return {bots};
}
}
botlevelup.component.html
Bot: {{bot.id}}
Last Level: <input [(ngModel)]="bot.lastLevel" />
<button (click)="save()">Save</button>
botlevelup.component.ts
save() {
this.storage.store('boundValue', JSON.stringify(bot));
}
我可以看到我更新的值存儲在「boundValue」使用控制檯日誌,和仍在刷新之後出現。
如何在刷新後從'boundValue'而不是原始的in-memory-data.service.ts中檢索更新的值?
我想達到的if else:
- 如果有對機器人1和2所做的更改,它將會從 'boundValue'
- 如果沒有以BOT 3所做的更改,它將從內存中的data.service中檢索。
編輯#1:檢索
getBots(): Observable<Bot[]> {
this.storage.retrieve('boundValue');
return this.http.get<Bot[]>(this.botsUrl)
.pipe(
catchError(this.handleError('getBots', []))
);
}
IIFC,你使用'boundValue'作爲每個'bot'對象的關鍵字,對吧?在這種情況下,最後的更新是您看到的唯一一個與以前的'boundValue'相關的值被覆蓋的b/c。 – bazzells
我設法將兩臺機器人都存儲到了boundValue中。刷新後如何顯示機器人? – icedmilocode
你是如何試圖從存儲中獲取數據的?你使用包文檔中的檢索方法嗎? – bazzells