Knockout不尊重$ index绑定上下文

时间:2015-12-18 01:22:52

标签: html knockout.js

我有一个foreach绑定,如果它是第一行,我不想显示复选框:

<div data-bind="foreach: items" class="row">
  <div class="col-sm-1">
    <input type="checkbox" data-bind="if: $index() > 0,checked: $data.isChecked, click: $parent.removeRow">
  </div>
  <!-- other cols -->
</div>

但是,每行都会显示复选框。

1 个答案:

答案 0 :(得分:1)

  

if绑定会导致标记的一部分出现在您的文档中   (并且要应用其数据绑定属性),仅在指定时使用   expression的计算结果为true(或true-ish值,例如非null   对象或非空字符串)。

source

data-bind: if指令会删除您应用该指令的标记的内容。将您的输入包装在div中就可以解决问题了:

<div cata-bind="if: $index() > 0">
     <input type="checkbox" data-bind="checked: $data.isChecked, click: $parent.removeRow">
</div>