0

Knockout JS を使用して、JSON データが入力されたリストがあります。

YUI デリゲートを使用すると、各リスト要素はドラッグ可能で、複数のドロップ ターゲットがあります ( YUI を使用dd-drop-plugin)。

ドロップ ターゲットの 1 つにリスト アイテムをドロップすると、既存のフォームに、ドロップされたアイテムのデータ (リストには表示されていないが、データ モデルにあるデータであっても) からのデータが取り込まれます。何もドロップされていない場合でも、ユーザーがフォームを編集して送信できるようにしたいと考えています。

私の元の見解は次のとおりです。

 <ol class="timeline" data-bind="foreach: $data">
    <li>  
        <p data-bind="text: Title"></p>
    </li>
</ol>

次の要素が入力されます。

$.getJSON(timelineURL, function(data) {
        var viewModel = ko.mapping.fromJS(data);
        ko.applyBindings(viewModel, document.getElementById("preleads"));
    });

次に、YUI dd があります。

YUI().use('dd-delegate', 'dd-drag','dd-drop-plugin', 'dd-proxy', function(Y) {

    // Make all the .timeline items draggable
    var draggables = new Y.DD.Delegate({
        container: ".timeline",
        nodes: "li"
    });

    // ... some setting up of the proxy elements, etc.

    var dropNew = Y.one("#addStoryForm").plug(Y.Plugin.Drop);
    dropNew.drop.on("drop:hit", function(e){

        // The bit I'm missing

    });

});

ドロップされた要素からのデータをフォームに入力する必要があります。

<form data-bind="with: droppedItem">
    <input type="text" data-bind="value: Title" />
    <input type="text" data-bind="value: SomethingElse" />
    <button type="submit" />
</form>
4

1 に答える 1