2

我目前正在使用带有以下代码的 Angular 1.3.13、angular-touch 1.3.15 和 Cordova 4.1.2。

<div ng-controller="myController">
  <ul>
    <li ng-swipe-right="swipeRight()">Swipe Me</li>
    <li ng-swipe-right="swipeRight()">Swipe Me</li>
    <li ng-swipe-right="swipeRight()">Swipe Me</li>
    <li ng-swipe-right="swipeRight()">Swipe Me</li>
  </ul>
</div>

使用以下控制器。

angular.module('myApp').controller('myController', function($scope, messages) {

    $scope.swipeRight = function() {
        console.log('swipe-right');
    }

});

在 Windows Phone 和 Windows 8.1 模拟器中,滑动事件触发良好,直到列表变得足够大以触发溢出,滑动事件停止触发。如果将溢出属性设置为隐藏,则滑动事件将恢复工作。有没有人见过这个问题?如果需要更多信息,请告诉我。

4

1 回答 1

0

我对 Windows 商店应用程序有类似的问题。鼠标模式控制一切正常,但触摸模式滑动事件不起作用。 http://hammerjs.github.io/ - HammerJS 监听器的注册神奇地帮助,角度滑动事件开始工作。

<div id="myElement" ng-cloak ng-swipe-left='next()' ng-swipe-right='previous()'>

...

//Register swipe event
    var mc = new Hammer($('#myElement')[0]);
        // listen to events...
        mc.on("swipeleft swiperight", function (ev) {
            if(ev.type == "swipeleft")
            {
                //$scope.previous(); //No need for this
            }
            else if (ev.type == "swiperight") {
                //$scope.next();
            }
        });

//Angular Swipe functions
        $scope.next = function() {
            //Do something
        };

        $scope.previous = function() {
                //Do something
        };

我希望这可能会有所帮助。

于 2015-07-28T09:13:11.650 回答