我有一个可放置的项目列表,我有一个自定义绑定:
ko.bindingHandlers.drag = {
init: function (element, valueAccessor, allBindingsAccessor) {
ko.utils.domData.set(element, "ko_drag_data", valueAccessor());
var options = ko.utils.extend(ko.bindingHandlers.drag.options, allBindingsAccessor().dragOptions);
$(element).draggable(options);
},
options: {}
};
我正在使用以下选项对其进行初始化:
ko.bindingHandlers.drag.options = {
connectToSortable: ".droppingZone",
helper: "clone",
revert: "invalid",
stack: ".detail",
cursor: "move",
cancel: null
};
可拖动的:
<div data-bind="drag: $data, dragOptions: { start: onDragStart, stop: onDragStop }, click: function (e) { $root.addField($data); }">
可排序的:
<div class="well droppingZone" data-bind="sortable: { data: fieldsHelper, allowDrop: $root.isListFull, options: { update: onUpdate } }">
我正在使用 Knockout-sortable 插件将这些元素放入可排序的元素中。
我希望允许用户删除,直到列表已满。这就是为什么我allowDrop: $root.isListFull
在文档中使用可排序绑定的原因。
问题是,无论$root.isListFull
包含什么值(真/假),我仍然可以将项目放入可排序中。
我究竟做错了什么?