2012-08-10 67 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/