2015-05-20 41 views
0

我在我的html視圖中使用了ko if語句,該語句引用了knockout的observableArray。在if條件中使用observableArray元素

你可以看到my code on jsfiddle

我很好奇爲什麼這行代碼不工作?

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

如果我打印出來的value,我得到我的預期值。

+1

它應該是<! - ko if:numbers()[1] .value()> 1 - > –

回答

3

應該<!-- ko if: numbers()[1].value() > 1 --> 因爲numbers()[1].value是一個可觀察(每個observable是一個函數)。

在上述情況下,當考慮到if: numbers()[1].value > 1時,您正在比較函數與1(始終爲false)。

1

後的「價值」應該使用括號,因爲「值」是可觀察到的,你要使用它的內容:

<!-- ko if: numbers()[1].value() > 1 --> 
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>