Knockout JS获取数组中的前一个元素

时间:2013-12-18 03:22:43

标签: javascript jquery knockout.js

我使用Knockout JS用数组“editAutoHoldDetails”填充表行(如代码示例中所示)。而不是priceRangeLowEdit,我想填充数组中前一个元素的priceRangeHighEdit。 例如,我的JSON如下所示。在数组的第二个元素中,我想用priceRangeHigh填充priceRangeLow(1000),前一个元素(2)。

请提出解决方案。

JSON:[{"baseLineErrorThresholdDown":100,"baseLineErrorThresholdUp":100,"prevTickErrorThresholdDown":50,"prevTickErrorThresholdUp":100,"priceRangeHigh":2,"priceRangeLow":0},
    {"baseLineErrorThresholdDown":0,"baseLineErrorThresholdUp":0,"prevTickErrorThresholdDown":0,"prevTickErrorThresholdUp":0,"priceRangeHigh":0,"priceRangeLow":1000}]

<tbody data-bind="foreach: editAutoHoldDetails" id="editAutoHoldDtlTblId">
 <tr>
    <td align="center" data-bind="text: priceRangeLowEdit"></td>
    <td align="center"> <input data-bind="value: priceRangeHighEdit"/></td>
    <td align="center"> <input data-bind="value: baseLineUpEdit"/></td>
    <td align="center"> <input data-bind="value: baseLineDownEdit"/></td>
    <td align="center"> <input data-bind="value: prevTickUpEdit"/></td>
    <td align="center"> <input data-bind="value: prevTickDownEdit"/></td>
</tr> 
</tbody>

1 个答案:

答案 0 :(得分:2)

尝试

<input data-bind="value: $parent()[($index()-1)].priceRangeHigh()"/>

我们使用$parent,在foreach绑定的情况下返回observable数组,$index返回循环中当前元素的索引。