如何为文本输入添加拖放区?

How to add a drop area to the text input?

我正在尝试实现从数据表到 Webix 文本输入的 DnD。 实际上,我发现 a sample 用于 html 输入:

    webix.DragControl.addDrop("mytext", {       // "mytext" is a DIV id
        $drop:function(source, target, event){
            var dnd = webix.DragControl.getContext();
            target.value = dnd.from.getItem(dnd.source[0]).title;
        }
    })

但是我如何才能将 addDrop 添加到 Webix ui.text?是否可以用某些东西替换 DIV id? 关键是内部输入的 ID 是动态的(存储直到您重新加载页面),所以我没有看到任何易于理解的方法来向它添加放置区域。任何想法表示赞赏。

这是一个基于之前示例的演示:http://webix.com/snippet/14cbbeec

一个肮脏的解决方案是 addDrop 到 webix widget $view 属性 (= DOM Element):

webix.DragControl.addDrop($$('webixText').$view, {
  $drop:function(source, target, event){
    var dnd = webix.DragControl.getContext();
    // target is the DOM element, so have to access webix widget with id
    $$('webixText').setValue(dnd.from.getItem(dnd.source[0]).title);
  }
});

更新的代码段:http://webix.com/snippet/77363e5a