0

當我添加項目到我的列表(通過點擊「添加系列」按鈕)它會導致我的列表不正確排序。例如。如果我點擊「添加系列」按鈕,然後嘗試在「trrde」和「1」之間移動「seriesname232」,那麼它會將它向下移動一個以上(在「1」下方)。我相信這是因爲可排序列表沒有考慮到添加了一些東西。下面是一個例子:Knockout Sortable list not working offset by new items added

http://jsfiddle.net/thebassix/yTAXh/

<div id="results"> 
      ---Hidden--- 
      <ul id="hidden" data-bind="sortable: { data: hiddenSeries, afterMove: hide}"> 
       <li data-bind="visible: Hidden, text: Name"></li> 
      </ul> 

    ---Unhidden---   
      <ul id="unhidden" data-bind="sortable: { data: unhiddenSeries, afterMove: unhide}"> 
       <li data-bind="visible: !Hidden(), text: Name"></li> 
      </ul> 
</div> 
<hr/> 
<div>All</div> 
<ul data-bind="foreach: series"> 
    <li> 
     <span data-bind="text: Name"></span> - 
     (<span data-bind="text: Hidden"></span>) 
    </li> 
</ul> 
<input id="btnAddSeries" data-bind="click: addSeries" title="Add Series" class="ews_button" type="button" value="Add Series" /> 

回答

0

的問題是,Series對象要添加具有_destroy作爲可觀察到的。一般來說,_destroy只是一個正常的屬性,因爲KO集的destroy函數將它作爲一個正常屬性。

所以,您的問題將是固定的,如果你不_destroy可觀察到的在你的Series構造,如:

self._destroy = data._destroy; 

更新的樣本:http://jsfiddle.net/rniemeyer/63rup/

此外,我只是增加了一個fixsortable插件,無論如何將打開_destroy,所以這不會是一個問題。

+0

謝謝你的工作出色! –