2012-08-10 107 views
1

我有一個observableArray:淘汰賽JS的foreach通過對象的數組循環

self.stats = ko.observableArray([ 
     {"DFTD" : new Stat("Defensive TD", "DFTD",0,20,0,self.playerGroups[1])}, 
     {"GL" : new Stat("Games Lost", "GL",0,16,0,self.playerGroups[2])}, 
     {"FGA" : new Stat("Field Goals ATT", "FGA",0,100,0,self.playerGroups[0])}, 

    ]); 

,我試圖以循環它周圍有一個foreach,然後打印出統計對象的名稱屬性,它是第一個元素在目的。

<tbody data-bind="foreach: stats" id="stat-sliders"> 
     <tr> 
      <td><span data-bind="text: stats.Stat().name"></span></td> 
      <!--/*<td class="statsListItem"> 
        </tr> 
</tbody> 

林不知道如果我做對了。我是一名初學者,想知道是否有人可以幫忙?

回答

1

您不應該回撥stats。請注意,span綁定到數組內部的模型的屬性。

<tbody data-bind="foreach: stats" id="stat-sliders"> 
     <tr> 
      <td><span data-bind="text: name"></span></td> 
      <!--/*<td class="statsListItem"> 
        </tr> 
</tbody> 

另外,我不認爲Knockout適用於像這樣的鍵控陣列。

+0

什麼是設置數組的最佳方式呢?我想這樣做,關鍵是一個文本值。 – 2012-08-10 12:33:21

+0

它應該只是'Stat'的一個屬性。 – 2012-08-10 12:34:17

+0

所以即時通訊嘗試做的是採取另一個數組,並迭代通過它的另一個數組中的每個鍵我想查找上面的數組中的特定鍵的值,而不必遍歷整個數組和檢查每個條目的屬性值,確保它與另一個數組中的鍵匹配。思考? – 2012-08-10 12:37:17

3

下面的小提琴創建了一個足球統計數組,其中包含一個關鍵字段和一個統計字段。如果你喜歡,你可以使用關鍵字段來加快訪問速度。如果你想要一個對象,你有財產是關鍵,這將允許最快的索引,儘管它不是一個數組。

看看這是你想要的。

http://jsfiddle.net/johnpapa/CgFjJ/