6

我正在使用淘汰赛-2.2.0.js。我在 observableArray 上创建了一个 foreach 循环绑定,我只想显示数组中的第一个元素。为此,我尝试了:(均无效)

第一的

        <!-- ko foreach: myArray -->
          <span data-bind="text: $data, visible: $index == 0"></span>
        <!-- /ko -->

第二

        <span data-bind="text: myArray[0]"></span>       

我知道有一个_destroy属性,如果在任何数组元素上设置而不是该元素,则该属性将从 UI 中的 foreach 循环绑定中排除。但我不想在我的情况下使用它。谁能告诉我我在这里做错了什么?

4

1 回答 1

15

你在正确的轨道上。但是你忘了()在你的两个例子中都给出。

myArray一个可观察的数组并且$index是一个可观察的,因此它们是函数,因此您需要将它们作为函数调用,()以在表达式中获取它们的值。

所以正确的绑定是:

<!-- ko foreach: myArray -->
    <span data-bind="text: $data, visible: $index() == 0"></span>
<!-- /ko -->

<span data-bind="text: myArray()[0]"></span>  

演示JSFiddle

注意:如果你真的只想显示第一个项目,那么你应该更喜欢这个text: myArray()[0]版本,因为它在那里你想要做的事情更清晰。

于 2013-03-02T08:27:32.673 回答