Knockout js $ index()似乎没有用

时间:2013-02-27 12:13:15

标签: javascript knockout.js

我使用以下代码打印div的id。但$ index()似乎不起作用,

<div data-bind="foreach: itemRows">
           <div class="fruitList" data-bind="foreach: $data">
                <div data-bind="attr: { 'id': 'uniqueName_' + $index() }">
                    <img data-bind="attr: { src: $data }" />
                 </div>
           </div>
        </div>

任何建议..

更新:   呈现的HTML具有此

<div id="uniqueName_NaN" data-bind="attr: { 'id': 'uniqueName_' + ($parent.index +   

  $data.index) }">

我没有出现。我错过了什么......

2 个答案:

答案 0 :(得分:1)

它应该只是$ index,所以没有()

    <div data-bind="foreach: itemRows">
       <div class="fruitList" data-bind="foreach: $data">
            <div data-bind="attr: { 'id': 'uniqueName_' + $index }">
                <img data-bind="attr: { src: $data }" />
             </div>
       </div>
    </div>

答案 1 :(得分:0)

如果要使用两个循环中的索引,则需要访问父上下文。索引存储在上下文对象中,而不是$data

<div data-bind="foreach: itemRows">
    <div class="fruitList" data-bind="foreach: $data">
        <div data-bind="attr: { 'id': 
                'uniqueName_' + $parentContext.$index() + '_' + $index() }">
            <img data-bind="attr: { src: $data }" />
        </div>
    </div>
</div>