我也在与Google Groups合作,在淘汰赛论坛上为此提供帮助 - 但我认为更大的受众永远不会损害这种情况。

我试图让KO使用jQuery UI的“可分配”插件来处理这种情况。我的代码在这里发布。

http://www.pastie.org/1285716

试图使用自定义绑定...

        ko.bindingHandlers.onReceiveItem = {
            init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
                $(element).bind("sortreceive", function (event, ui) {
                    ko.bindingHandlers.onReceiveItem.update(element, valueAccessor, allBindingsAccessor, viewModel);
                });
            },
            update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
                var value = ko.utils.unwrapObservable(valueAccessor());
                var bindings = allBindingsAccessor();
            }
        };

目的是,当可排序列表收到项目时,它可以获取该项目并将其添加到另一个ObservableArray。

不过,这对我来说还不够。我很难像我想要的那样将活动开火。我设置它的方式,确实会发射,但它只返回一个“真/错误”值。我希望别人可能会对我做错了什么,并且知道如何解决它。

(要使用代码,您需要参考

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/base/jquery-ui.css" rel="Stylesheet" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.js"></script>

在顶部,然后是最新版本的淘汰赛(1.1.1)

http://cloud.github.com/downloads/stevesanderson/knockout/knockout-1.1.1.1.debug.js

有帮助吗?

解决方案

我没有意识到 史蒂夫已经回答了 在我完成之前。不过,您走在这里,与他略有不同。

可分配使它变得更加困难,这将使每种产品绑定拖放绑定会变得容易得多。可分配的问题是,您在整个列表上而不是项目绑定。

http://www.pastie.org/1432093

其他提示

我重新设计了样本,并配备了一个几乎完整的绑定者,它不需要ID属性,并且还可以处理重新排序。这是代码:

http://jsbin.com/knockoutsortable/20/Edit

用法:

  • 它正在使用模板。进行绑定以找出视图模型中关联的数组是什么。

  • 您可以使用databind =“ foreach:foreach:products,sortable:true”来在没有选项的情况下进行排序。

  • 它正在使用ObservableArray对象。

  • 它正在构建jQuery可分类,您可以将绑定中的相同选项对象传递,而不是在jQuery.sortable构造函数中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top