在if条件中使用observableArray元素

时间:2015-05-20 10:04:52

标签: knockout.js

我在我的html视图中使用ko if语句,该语句引用了一个knockout observableArray。

您可以看到my code on jsfiddle

我很好奇为什么这行代码不起作用?

<!-- ko if: numbers()[1].value > 1 -->

如果我打印出value,我就会得到我期望的价值。

3 个答案:

答案 0 :(得分:3)

它应该是<!-- ko if: numbers()[1].value() > 1 --> 因为numbers()[1].value是一个 observable (每个observable都是一个函数)。

在考虑if: numbers()[1].value > 1的上述情况下,您将函数与1进行比较(始终为false)。

答案 1 :(得分:1)

你应该在“value”之后使用括号,因为“value”是一个可观察的,你想要使用它的内容:

<!-- ko if: numbers()[1].value() > 1 -->

答案 2 :(得分:0)

这是单程

<h4>Numbers</h4>
<button data-bind="click: add">Add</button>
 <input id="myid" data-bind="value: numbers()[1].value"></input>
 <!-- ko foreach: numbers -->    
<!-- ko if: $index() == 1-->
<div data-bind="text: value">
</div>
<!-- /ko -->
<!--/ko-->
<span data-bind="text: sum"></span>