【问题标题】:Dragula angular how to access the model itemDragula angular如何访问模型项
【发布时间】:2016-06-05 21:52:12
【问题描述】:

如何访问使用 drop-model 事件拖放的确切模型项?

文档中对 drop 事件的描述:

elsibling 元素之前被放入 target,最初来自 source

el 似乎返回了被拖动的 HTML 元素,但我需要对其后面的实际数据项执行操作。有什么提示吗?

 <div class="collapse" id="manageUsers">
    <div class='containerDragula' dragula='"bag"' dragula-model='usersInProject'>
        <div ng-repeat='user in usersInProject' ng-bind='user.email'></div>
    </div>
    <div class='containerDragula' dragula='"bag"' dragula-model='usersNotInProject'>
        <div ng-repeat='user in usersNotInProject' ng-bind='user.email'></div>
    </div>
</div>

$scope.$on('bag.drop-model', function (e, el, target, source) {
    //this returns the html element
    console.log(el);
});

【问题讨论】:

    标签: angularjs dragula angular-dragula


    【解决方案1】:

    我遇到了同样的问题,并通过将项目的 id 添加到 HTML 元素来解决它。

    类似这样的:

    <div id="{{ user.id }}" ng-repeat='user in usersNotInProject' ng-bind='user.email'></div>
    

    在控制器中,我使用 id 查找项目:

    $scope.$on('bag.drop-model', function (e, el, target, source) {
        //getById is a function you implement (unless you already have it)
        console.log(usersNotInProject.getById(el.attr('id')).email);
    });
    

    【讨论】:

    • 感谢您采用这种巧妙的方法
    • 我也是这样做的。可耻的是,lib 一开始就没有它。对于 ng2,它已被请求并包含在其中
    猜你喜欢
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多