淘汰赛“如果”结合与表达在排序列表不起作用?(Knockout “if” binding doesn

2019-07-29 22:02发布

我正好碰上了另一个问题与淘汰赛和淘汰赛可排序插件让我的待办事项般的排序列表。

我需要把一个红色的分隔符放置在当前时间的元素,如果一个元素是分隔符之前被丢弃取消排序。

我试着用“看得见”的结合,它在某些方面的工作,但都看得到结合只是隐藏DOM元素,它搞糟排序arrayIndex,增加不必要的元素吧。

<div class="delimiter" data-bind="visible: time() == $root.limit()"></div>

“如果”绑定,因为它仅在必要时插入DOM元素会更好,但我看到使用的表达总是被评估为真,我想不通为什么...

<div class="delimiter" data-bind="if: time() == $root.limit()"></div>

这里是小提琴: http://jsfiddle.net/ingro/VaqqF/

任何帮助表示赞赏,谢谢!

Answer 1:

你只是误解了如果结合:它消除它已经被应用到,而不是节点自身的节点的内容。 如果你想删除一个节点,而无需创建它周围的包装(也可以使用添加绑定),还有的如果结合,称为无容器控制流语法的注释版本:

<!-- ko if: time() == $root.limit() -->
  <div class="delimiter"></div>
<!-- /ko -->

http://jsfiddle.net/VaqqF/11/

参考: http://knockoutjs.com/documentation/if-binding.html



文章来源: Knockout “if” binding doesn't work with expression in a sortable list?