首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖曳式“清除溢出物”剂量正确工作

拖曳式“清除溢出物”剂量正确工作
EN

Stack Overflow用户
提问于 2015-08-18 13:19:04
回答 1查看 286关注 0票数 1

我试图弄清楚,如何在Dragular (http://luckylooke.github.io/dragular/#/home)中设置选项以获得所需的行为:

假设我们有两个容器,containerLeftcontainerRight。我们希望能够将复制的项目从containerLeft拖放到containerRight中。示例:当我们将item left 1移动到containerRight时,它应该在containerLeftcontainerRight中可见。效果很好。好的,我们希望有更多的功能-从containerRight中删除项目。下面是我的控制器代码:

代码语言:javascript
复制
function TestController(dragularService, $element, $scope) {
    $scope.left = [
        {content: 'left 1'},
        {content: 'left 2'},
        {content: 'left 3'}
    ];

    $scope.right = [
        {content: 'right 1'},
        {content: 'right 2'},
        {content: 'right 3'}
    ];

    var containerLeft = document.querySelector("#containerLeft");
    var containerRight = document.querySelector("#containerRight");

    //remove items from containerRight dosent work properly  
    dragularService([containerRight], {
        removeOnSpill: true
    });

    dragularService([containerLeft, containerRight], {
        containersModel: [$scope.left, $scope.right],
        copy: true,
        //move only from left to right  
        accepts: function (el, target, source, sibling) {
            if (source === containerRight && target === containerLeft) {
                return false;
            } else {
                return true;
            }
        }
    });
}

和看法:

代码语言:javascript
复制
<div class="row" ng-controller="TestController">
    <div class="column small-6">
        <div id="containerLeft" style="">
            <div ng-repeat="item in left">{{item.content}}</div>
        </div>
        <div id="containerRight" style="">
            <div ng-repeat="item in right">{{item.content}}</div>
        </div>
    </div>
    <div class="column small-6">
        <pre>
            left: {{ left | json}}
        </pre>
        <pre>
            right: {{ right | json}}
        </pre>
    </div>
</div>

当我从containerRight中删除项目时,它们会从视图中消失,但它们仍然在right数组中(如果我从左到右拖放某项,则删除的早期项将再次出现)。此外,当我在containerRight中更改项顺序时,它不会对right数组产生影响--条目顺序不会改变。如何设置options对象以使其正常工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 15:33:21

是的,设置是正确的,它的错误实际上..。我已经提出了在项目github页面上这个问题,我很快就会解决的;)

编辑:好的,安装是不正确的,但是也有一个错误,我已经在开发分支中修复了它,将在下一个版本中合并。

以下是正确的设置:

代码语言:javascript
复制
function TestController(dragularService, $element, $scope) {
    $scope.left = [{
      content: 'left 1'
    }, {
      content: 'left 2'
    }, {
      content: 'left 3'
    }];

    $scope.right = [{
      content: 'right 1'
    }, {
      content: 'right 2'
    }, {
      content: 'right 3'
    }];

    var containerLeft = document.querySelector("#containerLeft");
    var containerRight = document.querySelector("#containerRight");

    //remove items from containerRight dosent work properly  
    dragularService([containerRight], {
      containersModel: [$scope.right],
      removeOnSpill: true,
      nameSpace: 'sameSpace'
    });

    dragularService([containerLeft], {
      containersModel: [$scope.left],
      copy: true,
      //move only from left to right  
      accepts: function(el, target, source, sibling) {
        if (source === containerRight && target === containerLeft) {
          return false;
        } else {
          return true;
        }
      },
      nameSpace: 'sameSpace'
    });
  }

说明:不能在同一个容器上多次调用dragularService,如果您想要不同的容器选项,则必须分别调用容器上的dragularService,然后通过nameSpace连接它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32073618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档