如何将物品从一个桶移动到另一个桶 - DragulaJS-Angular

时间:2016-10-10 14:23:33

标签: javascript angularjs dragula angular-dragula

嘿我正在使用DragulaJS-Angular版本以获得两个存储桶之间的拖放效果。 我对这个库有几个问题。 首先,我可以移动只属于同一个桶的物品,如果我定义了不同的桶,那么我就无法在它们之间移动物品。

解释我的代码和我的目标:

我有3个div,container-one,container-two&容器的三分之一。

我的主要目标是:

1.仅从容器1和1中传递物品容器二到容器三分之一。

2.不允许在容器一和容器二之间转移物品。

3.此外,我想为从container-one ||转移的每个项目添加类容器二到容器三分之一。

  1. 此外,我希望能够清理行李并重置系统。
  2. 5.我想制作一个将元素从一个包传递到另一个包的动画,当前的动画还不够。我需要在两个容器之间看到拖动元素,而不仅仅是在其中一个容器中。 我的代码:

    
    
    var app =  angular.module("app",[angularDragula(angular)]);
    app.controller('MainCtrl', function($scope, dragulaService) {
      dragulaService.options($scope, 'first-bag', {
          copy: true
        });
    });
    
    .container {
        float: left;
        width: 48%;
        margin-right: 2%;
        padding: 10px;
        min-height: 300px;
        background-color: rgba(0, 0, 0, 0.2);
        transition: opacity 0.4s ease-in-out;
        cursor: move;
        cursor: grab;
        cursor: -moz-grab;
        cursor: -webkit-grab;
        box-sizing: border-box;
    }
    .container div {
        padding: 10px 15px;
        margin: 10px 0;
        background-color: rgba(0, 0, 0, 0.2);
    }
    
    .gu-transit {
      opacity: 0.2;
      -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
      filter: alpha(opacity=20);
    }
    
    <script src="https://rawgit.com/bevacqua/angular-dragula/master/dist/angular-dragula.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="app" ng-controller="MainCtrl">
     <div class='wrapper'>
          <div class='container' id="container-one" dragula='"first-bag"'>
            <div>You can move these elements between these two containers</div>
            <div>Moving them anywhere else isn't quite possible</div>
            <div>There's also the possibility of moving elements around in the same container, changing their position</div>
          </div>
         <div class='container' id="container-two" dragula='"first-bag"'>
            <div>You can move these elements between these two containers</div>
            <div>Moving them anywhere else isn't quite possible</div>
            <div>There's also the possibility of moving elements around in the same container, changing their position</div>
          </div>
          <div class='container' id="container-third" dragula='"first-bag"'>
            <div>This is the default use case. You only need to specify the containers you want to use</div>
            <div>More interactive use cases lie ahead</div>
            <div>Make sure to check out the <a href='https://github.com/bevacqua/dragula#readme'>documentation on GitHub!</a></div>
          </div>
        </div>
      
      
    </div>
    &#13;
    &#13;
    &#13;

1 个答案:

答案 0 :(得分:1)

var app = angular.module('angular-dragula-demo', [angularDragula(angular)]);


app.controller('MainCtrl', function($scope,$element, dragulaService) {
  dragulaService.options($scope, 'fisrt-bag', {
      copy: true
    });
     nameSpace: 'common';
});
.gu-mirror {
  position: fixed !important;
  margin: 0 !important;
  z-index: 9999 !important;
  opacity: 0.8;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
  filter: alpha(opacity=80);
}
.gu-hide {
  display: none !important;
}
.gu-unselectable {
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
}
.gu-transit {
  opacity: 0.2;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
  filter: alpha(opacity=20);
}
body {
  background-color: #942A57;
  margin: 0 auto;
  max-width: 760px;
}

html, body {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

*, *:before, *:after {
  -webkit-box-sizing: inherit;
  -moz-box-sizing: inherit;
  box-sizing: inherit;
}

body, input, button {
  font-family: Georgia, Helvetica;
  font-size: 17px;
  color: #ecf0f1;
}

h1 {
  text-align: center;
  background-color: #AC5C7E;
  margin-top: 20px;
  margin-bottom: 0;
  padding: 10px;
}

h3 {
  background-color: rgba(255, 255, 255, 0.2);
  border-bottom: 5px solid #A13462;
  text-align: center;
  padding: 10px;
}

h3 div {
  margin-bottom: 10px;
}

.tagline {
  margin-top: 0;
}

.promo {
  margin-bottom: 0;
  font-style: italic;
  padding: 10px;
  background-color: #ff4020;
  border-bottom: 5px solid #c00;
}

a {
  font-weight: bold;
}
a,
a:hover {
  color: #ecf0f1;
}

pre {
  white-space: pre-wrap;
}

pre code {
  color: #fff;
  font-size: 14px;
  line-height: 1.3;
}

label {
  display: block;
  margin-bottom: 15px;
}

sub {
  display: block;
  margin-top: -10px;
  margin-bottom: 15px;
  font-size: 11px;
  font-style: italic;
}

ul {
  margin: 0;
  padding: 0;
}

.parent {
  background-color: rgba(255, 255, 255, 0.2);
  margin: 50px 0;
  padding: 20px;
}

input {
  border: none;
  outline: none;
  background-color: #ecf0f1;
  padding: 10px;
  color: #942A57;
  border: 0;
  margin: 5px 0;
  display: block;
  width: 100%;
}

button {
  background-color: #ecf0f1;
  color: #942A57;
  border: 0;
  padding: 18px 12px;
  margin-left: 6px;
  cursor: pointer;
  outline: none;
}

button:hover {
  background-color: #e74c3c;
  color: #ecf0f1;
}

.gh-fork {
  position: fixed;
  top: 0;
  right: 0;
  border: 0;
}

/* dragula-specific example page styles */
.wrapper {
  display: table;
}
.container {
  display: table-cell;
  background-color: rgba(255, 255, 255, 0.2);
  width: 50%;
}
.container:nth-child(odd) {
  background-color: rgba(0, 0, 0, 0.2);
}
/*
 * note that styling gu-mirror directly is a bad practice because it's too generic.
 * you're better off giving the draggable elements a unique class and styling that directly!
 */
.container div,
.gu-mirror {
  margin: 10px;
  padding: 10px;
  background-color: rgba(0, 0, 0, 0.2);
  transition: opacity 0.4s ease-in-out;
}
.container div {
  cursor: move;
  cursor: grab;
  cursor: -moz-grab;
  cursor: -webkit-grab;
}
.gu-mirror {
  cursor: grabbing;
  cursor: -moz-grabbing;
  cursor: -webkit-grabbing;
}
.container .ex-moved {
  background-color: #e74c3c;
}
.container.ex-over {
  background-color: rgba(255, 255, 255, 0.3);
}
.handle {
  padding: 0 5px;
  margin-right: 5px;
  background-color: rgba(0, 0, 0, 0.4);
  cursor: move;
}
<!DOCTYPE html>
<html ng-app="angular-dragula-demo">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <link rel="stylesheet" href="style.css" />
  </head>

  <body ng-controller="MainCtrl">
    <div class='wrapper'>
      <div class='container' id="con1" dragula='"bag-c"'>
        <div>You can move these elements between these two containers</div>
        <div>Moving them anywhere else isn't quite possible</div>
        <div>There's also the possibility of moving elements around in the same container, changing their position</div>
      </div>
      <div class='container' id="con2" dragula='"bag-b"'>
        <div>This is the default use case. You only need to specify the containers you want to use</div>
        <div>More interactive use cases lie ahead</div>
        <div>Make sure to check out the <a href='https://github.com/bevacqua/dragula#readme'>documentation on GitHub!</a></div>
      </div>
      <div class='container' id="con3" dragula='"bag-b"'>
        <div>This is the default use case. You only need to specify the containers you want to use</div>
        <div>More interactive use cases lie ahead</div>
        <div>Make sure to check out the <a href='https://github.com/bevacqua/dragula#readme'>documentation on GitHub!</a></div>
      </div>
      <div class='container' id="con4" dragula='"second-bag"'>
        <div>This is the default use case. You only need to specify the containers you want to use</div>
        <div>More interactive use cases lie ahead</div>
        <div>Make sure to check out the <a href='https://github.com/bevacqua/dragula#readme'>documentation on GitHub!</a></div>
      </div>
    </div>
    
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.min.js"></script>
    <script src="https://rawgit.com/bevacqua/angular-dragula/master/dist/angular-dragula.min.js"></script>
    <script src="app.js"></script>
  </body>

</html>

尝试这一点也可以通过此链接帮助您 http://luckylooke.github.io/dragular/?utm_source=angular-js.in&utm_medium=website&utm_campaign=content-curation#/docs/exampleDifferentOptionsWithModel