如果没有容器元素的绑定不适用于可排序

时间:2013-01-08 15:27:56

标签: knockout.js knockout-sortable

我从rniemeyer修改了一个JSFiddle以说明问题:http://jsfiddle.net/mTqMt/1/

  <div class="container" data-bind="sortable: groupOrItems">
    <!--ko if: type=='Group'-->
    <div>
      <div class="title" data-bind="text: name()"></div>
      <!--here I would actually have a nested sortable-->
    </div>
    <!--/ko-->
    <!--ko if: type=='Item'-->
    <div class="item" data-bind="text: name()"></div>
    <!--/ko-->
  </div>

Firebug说:“类型错误:节点为空”在knockout-latest.debug.js中的第546行

我用“foreach”代替“sortable”尝试了它,然后它起作用了。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

可排序的绑定和jQuery UI可排序确实需要一个父元素来抓取你正在排序的东西。

您希望至少将整个“项目”包装在以下元素中:

  <div class="container" data-bind="sortable: groupOrItems">
    <div>
      <!--ko if: type=='Group'-->
      <div>
        <div class="title" data-bind="text: name()"></div>
        <!--here I would actually have a nested sortable-->
      </div>
      <!--/ko-->
      <!--ko if: type=='Item'-->
      <div class="item" data-bind="text: name()"></div>
      <!--/ko-->
    </div>
  </div>

更新:http://jsfiddle.net/rniemeyer/FSYYb/