当前位置: 首页 > 知识库问答 >
问题:

Firebase列表的嵌套Angular2 ngFor指令[重复]

亢雅懿
2023-03-14

我想使用Angular 2中的ngfor将Firebase查询的结果绑定到我的模板。这在下面很容易实现。

组件:

export class FeaturedThreadsComponent { 
    threads: FirebaseListObservable<any[]>;
    qualitySubject: Subject<any>;

    constructor(af: AngularFire) {
        this.qualitySubject = new Subject();
        this.threads = af.database.list('/threads', {
            query: {
                orderByChild: 'quality',
                endAt: 5
            }
        });
    }
}

模板:

<div *ngFor="let thread of threads | async">
    {{thread.title}}
</div>

但如果我想使用模板中嵌套的另一个ngfor指令来列出子对象的键...

<div *ngFor="let thread of threads | async">
    {{thread.title}}
    <div *ngFor="let participant of thread.participants">
        {{participant.$key}}}
    </div>
</div>

我得到控制台错误,找不到类型为“object”的不同支持对象“[object object]”。NgFor仅支持绑定到数组等可迭代项。

在我的数据库结构中,participantsthreads的子级,而threadsthreads的子级,其中threads是动态键。因此我无法使用直接路径来访问参与者

这种嵌套ngfor指令的模式在简单迭代本地文件的服务中运行良好。为什么它在这里不起作用对我来说似乎有点模糊。

共有1个答案

邹嘉石
2023-03-14

对于那些跟随这个线程到它被标记为重复的线程的人,不要像公认的答案所建议的那样创建管道。最佳答案避免了已接受答案的性能问题,而且简单得多。

 类似资料:
  • 问题内容: 试图了解如何在Firebase中实现嵌套列表。 可以解决的问题:1-to-N消息传递系统,对于每个消息,您希望维护一个已接收和阅读该消息的用户列表。 阅读了“ Firebase中阵列的最佳实践”。尝试避免使用数组,因为我要同时进行写操作,而在这里看来它们并不是一个好选择。 当前试图通过在每个消息下存储子树来实现此目的,每个子树是已接收,读取或以其他方式对消息 Y 执行某些操作 X 的用

  • 我在Firebase中有以下数据: 在Flutter中,我有以下两个对象: 我正在尝试将Firebase中的集合嵌套贴图转换为Flatter中的列表,但遇到了问题。在Flatter中将具有贴图字段的贴图对象转换为列表的最佳方法是什么? 我知道我在处理map对象时遇到了问题,根据我的方法,我收到了不同的错误,但通常类似于以下情况之一: 错误1:“键入“\u InternalLinkedHashMap

  • 问题内容: 谁能告诉我如何在嵌套列表中调用索引? 通常我只写: 但是如果我有一个带有嵌套列表的列表,如下所示: 我想分别浏览每个索引? 问题答案: 如果您确实需要索引,则可以按照内部列表再次执行以下操作: 但是遍历列表本身是更pythonic的: 如果您确实需要索引,也可以使用:

  • 本文向大家介绍Markdown 嵌套列表,包括了Markdown 嵌套列表的使用技巧和注意事项,需要的朋友参考一下 示例 列表可以嵌套 八个空间 十二个空格 四个空间 然后回来

  • 问题内容: 我试图在一个内部列表中使用外部列表理解的值: 但是不幸的是,这会引发NameError,因为名称是未知的(尽管外部列表理解指定了该名称)。 这是Python的局限性(尝试过2.7.3和3.2.3)还是有充分的理由解释为什么它不起作用? 是否有计划摆脱限制? 是否有解决方法(可能我没有弄清楚一些不同的语法)来实现我想要的? 问题答案: 您在谈论列表 推导 ,而不是生成器表达式。 您需要交

  • 问题内容: 我想获取x在嵌套列表中出现的次数。 如果列表是: 还行吧。但是如果列表是: 如何获得1出现的次数?在这种情况下,4。 问题答案: 这是扁平化嵌套序列的另一种方法。将序列展平后,可以很容易地进行检查以找到项目数。 上面的代码打印: