1

私はこのコードを持っています(最新のkoバージョン):

<tbody>
                <!-- ko foreach: searchResults-->
                <tr>
                    <td><span class="capbType" data-bind="text: type"></span> (<span data-bind="text: data.length"></span>)</td>
                    <td class="capbEntities">
                        <!-- ko foreach: data -->
                        <p data-bind="text: name"></p>

                        //THIS IS NOT RENDERING
                        <!-- ko if: $index == 3 -->
                        <span class="capbShowMore capbIcon capbIconExpand" data-bind="visible: data.length > 3,click: $root.toggleShow"><span data-bind="text: data.length - 3"></span> More</span>
                        <!-- /ko -->

                        <!-- /ko -->
                    </td>
                    <td class="capbMoreInfo">
                        <!-- ko foreach: data -->
                        <p data-bind="text: strategyName"></p>
                        <!--/ko-->
                    </td>
                </tr>
                <!--/ko-->
            </tbody>

capbShowMoreインデックスがあるときに要素を一度レンダリングしたいだけです3が、何らかの理由で要素を除いてすべてがレンダリングされるため、次のcapbShowMoreようになります。

<td class="capbEntities">
                        <!-- ko foreach: data -->
                        <p data-bind="text: name">FY13 SPM Strategy</p>
                        <!-- ko if:$index == 3 --><!-- /ko -->

                        <p data-bind="text: name">FY13 SPM Strategy</p>
                        <!-- ko if: $index == 3 --><!-- /ko -->

                        <p data-bind="text: name">FY11 Corporate Strategy</p>
                        <!-- ko if: $index == 3 --><!-- /ko -->

                        <p data-bind="text: name" style="display: none;">Service &amp; Portfolio Management</p>
                        <!-- ko if: $index == 3 --><!-- /ko -->

                        <p data-bind="text: name" style="display: none;">Strategy1</p>
                        <!-- ko if: $index == 3 --><!-- /ko -->

                        <p data-bind="text: name" style="display: none;">Strategy1</p>
                        <!-- ko if: $index == 3 --><!-- /ko -->

                        <p data-bind="text: name" style="display: none;">Update Admin Users - default</p>
                        <!-- ko if: $data.$index == 3 --><!-- /ko -->

                        <p data-bind="text: name" style="display: none;">Update Admin Users - Duplicates</p>
                        <!-- ko if: $index == 3 --><!-- /ko -->

                        <p data-bind="text: name" style="display: none;">Update Admin Users - Assignee is NULL</p>
                        <!-- ko if: $index == 3 --><!-- /ko -->
                        <!-- /ko -->
                    </td>

私は何を間違っていますか?

4

1 に答える 1

3

ドキュメントから:

他のバインディング コンテキスト プロパティとは異なり、$index観察可能なです。

()したがって、式の中で使用している場合は、値を取得するために を出す必要があります。

したがって、次のように動作するはずです。

<!-- ko if: $index() == 3 -->
<!-- /ko -->
于 2013-05-28T11:46:48.083 に答える