通过 require.js 加载时,ngDraggable 不适用于触摸

ngDraggable doesn't work with touch when loaded through require.js

我正在开发一个小型 angular 应用程序,它需要拖放并且需要使用触摸。

我找到了 ngDraggable,它看起来非常像我需要的。

问题是,由于事物的框架(长话短说),我不得不使用 require.js 加载我的依赖项。我还需要使用路由和视图。

我修改了 require.config.js 以包含 ngDraggable,如下所示:

paths: {
    'angular': requirejs.cardBaseLibBaseUrl + 'angular/angular',
    'angular-route': requirejs.cardBaseLibBaseUrl + 'angular-route/angular-route',
    // other things
    'ngDraggable': requirejs.cardBaseLibBaseUrl + 'ngDraggable-master/ngDraggable'
},
shim: {
    'angular' : {
        deps: ['jquery'], 
        'exports' : 'angular'
    },
    'angular-route': ['angular'],
    // other things
    'ngDraggable' : {
        deps: ['angular']
    }

最终使用ngDraggable的div长这样:

<div class="shelf">
    <table>
        <tr>
            <td ng-repeat="obj in draggableObjects">
                <div class="slot" ng-drop="true" ng-drop-success="onDropComplete($index, $data, $event)">
                    <table id="card-table">
                        <tr>{{obj.description}}</tr>
                        <tr>
                            <div class="card" ng-class="{'selected': obj.mit_card.selected}" ng-drag="true" ng-drag-data="obj" ng-hide="obj.mit_card==null"
                            ng-click="onCardSelected(obj)">
                                <table>
                                    <tr>
                                        <!-- <td class="vertical-text">{{obj.mit_card.description}}</td>-->
                                        <label class="vertical-text">{{obj.mit_card.spec_id}}</label>
                                    </tr>
                                </table>
                            </div>
                        </tr>
                    </table>
                </div>
            </td>
        </tr>
    </table>
    <div class="remove-zone" ng-drop="true" ng-drop-success="onRemoveDropComplete($data, $event)">Drag here to remove card</div>
</div>

在 Chrome PC 上一切正常,但是当我在 Android 上尝试时,我无法触摸拖动。

ngDraggable 附带的示例与触摸拖动一起使用,但它们将 ngDraggable.js 直接加载到 html 中,并且一切都在那里使用。

对正在发生的事情有什么想法吗?

编辑:我放了一个 test repository 。在 ngDraggable-master 中,example-.html 是原始示例,它们与触摸一起工作。 index.html 是我用 requireJS 重新解释 example-reorder.html 的切入点。它可以与鼠标一起使用,但触摸是不行的。

看起来问题确实出在 ngDraggable 上。 GitHub 上的最新版本似乎解决了它。