Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 在AngularJS中拖放_Jquery Ui_Angularjs_Drag And Drop - Fatal编程技术网

Jquery ui 在AngularJS中拖放

Jquery ui 在AngularJS中拖放,jquery-ui,angularjs,drag-and-drop,Jquery Ui,Angularjs,Drag And Drop,我正在尝试使用c0deformer的jqueryui实现来实现拖放(请参见此处:)拖动部分工作正常,但我似乎无法获得我想要的拖放功能。在这个应用程序中,我希望能够将可拖动项放到目标div中的任何位置,也就是说,我不希望目标范围局限于列表类型结构(或一组重复的div)。这主要是因为用户将动态拖动项目,并且无法知道用户将提前拖放多少项目 我在网上搜索过,在Angular中找不到一个使用拖放的示例,而没有有效地从一个列表拖动到另一个列表。这能做到吗?如果是这样,我不确定在拖动项目后如何适当地更新范围。

我正在尝试使用c0deformer的jqueryui实现来实现拖放(请参见此处:)拖动部分工作正常,但我似乎无法获得我想要的拖放功能。在这个应用程序中,我希望能够将可拖动项放到目标div中的任何位置,也就是说,我不希望目标范围局限于列表类型结构(或一组重复的div)。这主要是因为用户将动态拖动项目,并且无法知道用户将提前拖放多少项目

我在网上搜索过,在Angular中找不到一个使用拖放的示例,而没有有效地从一个列表拖动到另一个列表。这能做到吗?如果是这样,我不确定在拖动项目后如何适当地更新范围。在下面的示例代码中,删除的项被推送到第二个列表的范围中,并应用新的范围。理想情况下,删除项的范围是我上面提到的目标div。我真的是个新手,所以任何建议都非常感谢

来自变形器的片段:

app.directive('droppable', function($compile) {
    return {
        restrict: 'A',
        link: function(scope,element,attrs){
            //This makes an element Droppable
            element.droppable({
                drop:function(event,ui) {
                    var dragIndex = angular.element(ui.draggable).data('index'),
                        dragEl = angular.element(ui.draggable).parent(),
                        dropEl = angular.element(this);

                        console.log(dropEl);

                    if (dragEl.hasClass('list1') && !dropEl.hasClass('list1') && reject !== true) {
                    scope.list2.push(scope.list1[dragIndex]);
                    scope.list1.splice(dragIndex, 1);
                } else if (dragEl.hasClass('list2') && !dropEl.hasClass('list2') && reject !== true) {
                    scope.list1.push(scope.list2[dragIndex]);
                    scope.list2.splice(dragIndex, 1);
                }
                scope.$apply();
            }
        });
    }
};
});

我最近为拖放创建了一个角度指令,它不依赖于jqueryui。它使用html5拖放api。它对要拖放的数据的格式也没有任何要求,它只是为您设置了一个钩子,当一个元素被拖到另一个元素上时,您将收到通知

张贴于此:


这里演示:

我最近创建了一个不依赖jquery ui的拖放角度指令。它使用html5拖放api。它对要拖放的数据的格式也没有任何要求,它只是为您设置了一个钩子,当一个元素被拖到另一个元素上时,您将收到通知

张贴于此:


此处演示:

您应该将指令draggable放在您想要可拖动的元素上,将指令droppable放在您想要可拖放的元素上。它们是什么元素并不重要。你到底想做什么?只需拖动一个元素?@notme-我有多个可拖动的元素(它们在一个列表中),所有这些元素都可以在一个目标div(而不是每li一个div)内拖放。在我粘贴的代码中,我无法使其正常工作。您可以添加更多代码吗?你能用不起作用的代码创建一个JSFIDLE/PLUNK吗?你应该把draggable指令放在你想拖放的元素上,把droppable指令放在你想拖放的元素上。它们是什么元素并不重要。你到底想做什么?只需拖动一个元素?@notme-我有多个可拖动的元素(它们在一个列表中),所有这些元素都可以在一个目标div(而不是每li一个div)内拖放。在我粘贴的代码中,我无法使其正常工作。您可以添加更多代码吗?您能用不起作用的代码创建一个JSFIDLE/PLUNK吗?