1

以下代码假设使用 AnguarUI 的 Event 指令来传递 HammerJS 事件,但它不起作用。我显然错过了一些东西,但不明白到底是什么。没有抛出任何错误。

<!doctype html>
<html ng-app="myapp"  charset="UTF-8">
    <head>
         <meta charset="utf-8"> 
         <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
         <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
         <script type="text/javascript" src="https://raw.github.com/angular-ui/ui-utils/master/modules/event/event.js"></script>
         <script type="text/javascript" src="https://raw.github.com/EightMedia/hammer.js/v1.0.5/dist/hammer.min.js"></script>
         <style type="text/css">
            div {
                width: 100%;
                height: 100%;
            }
         </style>
    </head>
    <body ng-controller="pageCtrl">
        <div ui-event="{ tap: 'tapCallback()' }"></div>
        <script type="text/javascript">
            angular.module('myapp', ['ui.event']);
            function pageCtrl($scope) {
                $scope.tapCallback = function() {
                    alert("test");
                }
            }
         </script>
    </body>
</html>
4

1 回答 1

4

ui-events 用于elm.bind附加其侦听器。

Hammer.js 没有任何依赖项,默认情况下它不会将自身添加到 jQuery 中。
您可以包含一个 jQuery 插件来将 Hammer.js 和 jQuery 集成在一起。

在您发布的代码中,您没有该插件。(这里是 Hammer.js + jQuery 插件的链接

但是话又说回来,您的页面中甚至没有 jQuery,而且我不确定该插件是否适用于 angular 的 jqLit​​e。

您可以通过使用Angular Hammer您应该使用它)来避免所有问题,
甚至 Hammer.js wiki 链接到它

于 2013-05-27T05:09:38.840 回答