2017-02-03 29 views
3

我有一個對象,我通過一個名爲compModel的可觀察對象獲得。它給了我一個大的配置對象,我需要用它來調整dom的各個部分。我想要做的事情之一是根據此模型選中/取消選中某些複選框,但我無法訪問它們各自的屬性。在模板中,我如何綁定到由observable傳遞的對象的深層嵌套屬性?

  1. 將compModel observable評估爲truthy,並在收到數據時檢查框

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

  • 當obj是在compModel 最終這個計算結果爲null和在任何點未選中的框限定。我認爲這被解釋爲將異步管道的obj屬性傳遞給異步管道,該管道返回null,因爲可觀察對象本身沒有obj,這是未來的數據。
  • <input type="checkbox" checked="{{compModel.obj | async}}">

  • 我得到一個錯誤說,角度Cannot read property boolean of undefined。這裏的布爾值是我所追求的。我如何得到它?
  • <input type="checkbox" checked="{{compModel.obj.boolean | async}}">

    回答

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

    你需要管的實際觀察到的與異步然後有條件地訪問它的使用Elvis操作符來處理情況,他們尚不可用的情況下未來的性能。

    +4

    你是個美麗的人。 – JordanFrankfurt

    +0

    :D沒問題!當我第一次開始對綁定觀察對象進行工作時,那個人讓我掛斷了一下 –

    相關問題