0

我正在尝试让剔除映射插件与 Ryan Niemeyer 的可排序插件一起使用,但没有成功。在我的示例中,如果您尝试将项目排序到列表的中间,那么它总是将其放在底部。排序到列表顶部有效,但是如果您尝试将项目排序到顶部以外的任何其他位置,它将自动转到列表底部。

示例:http: //jsfiddle.net/thebassix/cKX53/1/

这是我的html:

<div id="results">
            <h3>Tasks</h3>
            <ul data-bind="sortable: series">
                <li data-bind="text: Name"></li>
            </ul>
        </div>​
4

1 回答 1

1

该问题看起来与将您的_destroy属性转换为可观察的映射插件有关。Knockout 核心和处理的可排序插件中的功能_destroy期望它是一个普通属性。

映射插件确实有一个copy选项,您可以使用它来简单地复制属性而不是创建可观察对象。但是,这似乎只适用于顶级属性,所以如果您直接传入一个数组,那么您可能需要设置映射选项,例如:

var mappingOptions = {
    create: function(options) {
        return ko.mapping.fromJS(options.data, { copy: '_destroy' });
    }            
};

示例:http: //jsfiddle.net/rniemeyer/9UGKQ/

于 2012-11-29T16:18:47.147 回答