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

Javascript 如何仅显示foreach循环绑定中的第一个元素?,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我正在使用knockout-2.2.0.js。我已经在ObservalArray上创建了一个foreach循环绑定,我只想显示数组中的第一个元素。为此,我尝试了:(两者都不起作用) 首先 <!-- ko foreach: myArray --> <span data-bind="text: $data, visible: $index == 0"></span> <!-- /ko --> 第

我正在使用knockout-2.2.0.js。我已经在ObservalArray上创建了一个foreach循环绑定,我只想显示数组中的第一个元素。为此,我尝试了:(两者都不起作用)

首先

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

第二

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


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

你走对了方向。但是您忘记在两个示例中都显示
()

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

因此,正确的绑定是:

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


演示


注意:如果您真的只想显示第一项,那么您应该更喜欢
text:myArray()[0]
版本,因为它比您要做的要干净得多。

如果myArray是可观察的,您可以避免使用foreach,而只需执行类似
的操作吗,不要忘记,您必须像调用函数一样调用它才能访问索引。另外,您是否在Chrome中运行它并检查了控制台(f12)?它给了你什么错误?
<span data-bind="text: myArray()[0]"></span>