Javascript 如何仅显示foreach循环绑定中的第一个元素?
我正在使用knockout-2.2.0.js。我已经在ObservalArray上创建了一个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 --> 第
<!-- 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>