从非剑道UI小部件上拖放剑道UI模型



我正在制作一个使用Kendo UI Pro的原型。这将严重需要使用TreeListView和拖放。我不得不创建一个使用Angular 1的自定义放置位置。X自定义指令。在这个指令的link方法中,我使用kendoDropTarget()绑定到元素。我希望通过使用这种方法,我会得到与掉落的树行相关的Kendo模型免费,但情况似乎并非如此(除非我只是不知道去哪里找。)

我试图使用从MDN中找到的信息设置和获取对象上的dataTransfer,如下所示:

$scope.treeListOptions = {
  //...
  drag: function (e) {
    e.dataTransfer.setData('text/plain', JSON.stringify(e.source));
   }
};

在我的指令中,类似于:

app.directive('dropLoc', function () {
    return {
    // ...
    link: function (scope, ele, attrs, ctrl) {
        ele.kendoDropTarget({
            dragenter: function (e) {
                var data = e.dataTransfer.getData('text/plain');
                console.log(data);
            }
        });
    }
};

但以上只是导致e.dataTransfer is undefined错误。

所以,我的问题是我如何从启用剑道的小部件接收模型?

我需要连接一堆data-属性吗?

我能够在这里解决我的问题,但似乎应该有更好的方法来做到这一点。我认为最初的问题是我在两个不同的范围内工作:指令和树列表。作为一个Angular新手可能也没有什么帮助。=/

既然我能够触发掉事件,并且源端有数据,我想我应该创建一个Angular服务来更新数据和源掉事件,然后在目标掉事件上,从服务中拉入新的数据。这一直有效,直到我意识到目标掉落事件将在源掉落事件之前触发

我通过创建一个新事件来解决这个问题,该事件仅在数据更新后才会发出,并由目标侦听以获取数据。

我知道这是一个较旧的库,但我讨厌去想它所有的铃铛和口哨,我必须努力使它工作。

最新更新