我正在制作一个使用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服务来更新数据和源掉事件,然后在目标掉事件上,从服务中拉入新的数据。这一直有效,直到我意识到目标掉落事件将在源掉落事件之前触发。
我通过创建一个新事件来解决这个问题,该事件仅在数据更新后才会发出,并由目标侦听以获取数据。
我知道这是一个较旧的库,但我讨厌去想它所有的铃铛和口哨,我必须努力使它工作。