javascript - 通过拖放非 Kendo UI 小部件获取 Kendo UI 模型

标签 javascript angularjs kendo-ui drag-and-drop

我正在开发一个使用 Kendo UI Pro 的原型(prototype)。它将严重需要使用 TreeListView和拖放。我必须使用 Angular 1.x 自定义指令创建一个自定义放置位置。在此指令的 link 方法中,我使用 kendoDropTarget() 绑定(bind)到该元素。我希望通过使用这种方法,我可以免费获得与删除的树行关联的 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 错误。

所以,我的问题是如何从支持 Kendo 的小部件接收模型?

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

最佳答案

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

由于我能够触发放置事件,并且源端有数据,所以我想我只需创建一个 Angular 服务来更新数据和源放置事件,然后在目标放置事件上,从服务中提取新数据。这一直有效,直到我意识到目标放置事件将在源放置事件之前触发。

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

我意识到这是一个较旧的图书馆,但我讨厌想到尽管它有那么多花里胡哨的东西,但我必须努力奋斗才能让它发挥作用。

关于javascript - 通过拖放非 Kendo UI 小部件获取 Kendo UI 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39436933/

相关文章:

kendo-ui - 使用 Kendo UI MVC Treeview ,如何在初始加载时加载所有父级和子级?

javascript - JQuery、Froala - 更改光标所在元素的 CSS

javascript - 删除多个标点符号后面的标点符号javascript

javascript - UWP - WebView - Angular JS 注入(inject)

javascript - AngularJS - 持续监视集合

javascript - Angularjs 使用 ui-sref 链接将 html 添加到变量

javascript - KendoUI 网格内联编辑 : focus cell on doubleclick

javascript - 围绕具有半径的圆排列不同高度的div

javascript - jQuery 最小部分高度等于窗口高度

javascript - 发送超过 2000 个字符的 JSON 数据