【问题标题】:In a template, how do I bind to a deeply nested property of an object delivered by an observable?在模板中,如何绑定到由可观察对象传递的对象的深层嵌套属性?
【发布时间】:2017-06-21 08:05:25
【问题描述】:

我有一个对象,我通过一个名为 compModel 的 observable 获得。它给了我一个大的配置对象,我需要用它来调整 dom 片段。我想做的一件事是根据这个模型使一些复选框被选中/取消选中,但我无法访问它们各自的属性。

  1. 将可观察的 compModel 评估为真,并在收到数据时选中复选框

<input type="checkbox" checked="{{compModel | async}}">

  1. 当在 compModel 上定义 obj 最终时,其计算结果为 null,并且在任何时候都不会选中该框。我认为这被解释为将 observable 的 obj 属性传递给异步管道,该管道返回 null,因为 observable 本身没有 obj,未来的数据有。

<input type="checkbox" checked="{{compModel.obj | async}}">

  1. 我收到一条错误消息,指出 Angular Cannot read property boolean of undefined。这里的布尔值是我所追求的。我如何获得它?

<input type="checkbox" checked="{{compModel.obj.boolean | async}}">

【问题讨论】:

    标签: angular rxjs angular2-template angular2-observables


    【解决方案1】:
    <input type="checkbox" checked="{{(compModel | async)?.obj?.boolean}}">
    

    您需要使用异步管道传输实际的 observable,然后使用 elvis 运算符有条件地访问它的未来属性,以处理它们尚不可用的情况。

    【讨论】:

    • 你是一个美丽的人。
    • :D没问题!当我第一次开始使用绑定到可观察对象时,那个让我挂了一段时间
    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2017-07-12
    • 2013-05-19
    • 2022-11-25
    • 1970-01-01
    相关资源
    最近更新 更多