如何只显示foreach循环绑定中的第一个元素

How to only show only the first element in foreach loop binding?

本文关键字:第一个 元素 绑定 循环 显示 foreach      更新时间:2023-09-26

我使用的是knockout-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循环绑定之外。但我不想在我的情况下使用它。谁能告诉我我哪里做错了?

你做对了。但是你在两个例子中都忘了把()提出来。

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]版本,因为它更清晰,你正在尝试做的