【发布时间】:2017-11-26 01:42:10
【问题描述】:
我一直在编写一个使用 IndexedDB 的简单应用程序(感谢 Robisim 提供的示例应用程序,我借用了它的代码 https://github.com/robisim74/angular2indexedDB),但我无法异步访问我的组件的对象数组。即使我能够使用 | 遍历 html 页面中的项目。异步管道 - 我似乎无法使用 ts 文件中的对象数组。我已经尝试订阅 observable,但它没有成功做任何事情。当 observable 从 IndexedDB 完成加载后,谁能帮我选择对象数组中的第一个对象?
主页组件
getSchedule() {
this.selectedSchedule = this.entity.schedule[0];
}
获取ITEMS():可观察的{
return new Observable((observer: Observer<Array<Item>>) => {
observer.next(this.entity.schedule);
console.log(this.entity.schedule);
observer.complete();
});
}
App 组件中的代码打开数据库
openDB(dbName: string) {
// Opens the database.
this.indexedDB.openDBAsync(dbName, 1).forEach(
// Next.
(readyState: string) => {
console.log('IndexedDB service: opening db: ' + readyState);
}, null
).then(
() => {
// Gets all records from "TodoStore".
this.indexedDB.getAllRecordsAsync("ItemStore").forEach(
// Next.
(record: Item) => {
// Adds next record to the Todos entity.
if (record != null) {
this.entity.addItem(record);
}
}, null
).then(() => console.log('IndexedDB service: obtaining of all records completed.'))
}
);
}
【问题讨论】:
标签: angular observable indexeddb