0

当我将项目添加到我的列表(通过单击“添加系列”按钮)时,它会导致我的列表无法正确排序。EG 如果我单击“添加系列”按钮,然后尝试将“seriesname232”移动到项目“trrde”和“1”之间,那么它将比它应该向下移动一个(在“1”下方)。我相信这是因为可排序列表没有考虑到添加了一些东西。下面是一个例子:

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" />
4

1 回答 1

0

问题是Series您要添加的对象具有_destroy可观察性。一般来说,_destroy只是一个普通属性,作为destroyKO集合的功能,它是一个普通属性。

因此,如果您不在构造函数中创建_destroyobservable ,您的问题将得到解决,Series例如:

self._destroy = data._destroy;

更新示例:http: //jsfiddle.net/rniemeyer/63rup/

此外,我刚刚为插件添加了一个修复程序,无论如何都会解包,所以这不会是一个问题。sortable_destroy

于 2013-01-11T04:34:09.733 回答