angular - 类型'可观察的' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法
问题描述
这是我的管理界面
export interface Admin{
name: string;
email: string;
telephone: string;
address: string;
nic: string;
}
这是我的构造函数
constructor(
private afs: AngularFirestore,
private admins: Observable<Admin[]>,
private adminDoc: AngularFirestoreCollection<Admin>
){
this.adminDoc = this.afs.collection<Admin>('users/user/admin');
this.admins = this.adminDoc.snapshotChanges().pipe(
map(actions => actions.map(a=>{
var data = a.payload.doc.data() as Admin;
const id = a.payload.doc.id;
return {id,...data}
}))
);
}
这是我得到错误的地方
for(let admin of this.admins){
}
我该如何解决这个问题?
解决方案
this.admins 现在是一个 observable,你不能迭代 observable,你必须订阅它。或将for
循环逻辑移到里面:
map(actions => actions.map(a=>{
var data = a.payload.doc.data() as Admin;
const id = a.payload.doc.id;
//====> you have access to all items of here
return {id,...data}
}))
或者像这样订阅它:
this.admins.subscribe(admins => console.log(admins));
推荐阅读
- angular - Angular 单元测试:如何使用 Jasmine-Karma 为 app.service.ts 编写单元测试用例
- tortoisegit - TortoiseGit 在提交代码时列出存储库中的所有文件,因为行尾发生了变化
- bash - grep 带有通配符的模式的第一个实例
- javascript - 在javascript中将对象推送到数组
- php - 将包含空格的选项从 Laravel 刀片传递到 Vue 多选
- python - 使用文件在 discord.py 中嵌入附件的问题
- php - 如何使用流明创建 API 以从 Android 应用程序使用 Gmail 登录
- python - 用一点点随机性python创建均匀的空间点
- javascript - ReferenceError:属性'Reflect'不存在,js引擎:hermes react-native
- python - How do i parse data file with similar structure to INI using python?