2017-08-10 74 views
1

我想弄清楚MVC/Durandal/Knockout項目爲什麼我不能將 ContractsList() = ko.observableArray();綁定到第4級foreach中。 它工作正常,直到3級。嵌套ForEach Knockout 2.2.1不顯示達到第四級

這是我試圖綁定的Json。

{"Contracts": 
     { 
      "Contract": 
        [ 
         { 
          "NrContract":null, 
          "IdStore":"5", 
          "FlagStatus":"P", 
          "Date":"30/11/2017",       
          "Sale":"3168.23",      
          "DsName":"TEST1",      
          "Items": 
           { 
            "Item": 
            [ 
             {"NrItems":"1","VlTotalItems":"1112.23","DsItems":"3123123"}, 
             {"NrItems":"1","VlTotalItems":"2056","DsItems":"bbb"} 
            ] 
           } 
         }, 
         { 
          "NrContract":null, 
          "IdStore":"5", 
          "FlagStatus":"P", 
          "Date":"30/11/2017",       
          "DsName":"TEST2",      
          "Items": 
           { 
            "Item":[ 
               {"NrItems":"7","VlTotalItems":"7785,61","DsItems":"3123123"}, 
               {"NrItems":"1","VlTotalItems":"3","DsItems":"oi"} 
              ] 
           } 
         } 
        ] 
     } 
    } 

的foreach簡化:

<div data-bind='foreach: ContractsList'> 
    <div data-bind='foreach: Contract'> 
     <div data-bind='foreach: Items'>  
      <div data-bind='foreach: Item'> 
       <span data-bind='text: DsItems'></span> 
      </div> 
     </div> 
    </div> 

+2

'Items'是一個對象,而不是一個數組。改用'Items.Item'。 – user3297291

回答

2

這是因爲items是一個對象不是一個數組:

"Items": 
    { 
     "Item":[ 
        {"NrItems":"7","VlTotalItems":"7785,61","DsItems":"3123123"}, 
        {"NrItems":"1","VlTotalItems":"3","DsItems":"oi"} 
       ] 
    } 

更新數組,如果它的一個錯誤,這將工作或

<div data-bind='foreach: Items.Item'> 
    <span data-bind='text: DsItems'></span> 
</div> 
+0

謝謝@Tyler_michell,這是一個錯誤......並且這兩個解決方案都起作用! – Marisco

+0

@Marisco如果解決方案適合您,請將答案標記爲已接受,以便我們知道問題已關閉。 –

+0

哎呀..謝謝@Jason我忘了它。 – Marisco