我有一个可放置项目的列表,我有自定义绑定:
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
包含什么值(true / false),我仍然可以删除sortable中的项目。
我做错了什么?