カスタムバインディングがあるドロップ可能なアイテムのリストがあります:
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)、ソート可能な項目をドロップできることです。
私は何を間違っていますか?