Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有AngularJS指令来使用ngClick,它只在触摸事件时触发?_Javascript_Angularjs - Fatal编程技术网

Javascript 是否有AngularJS指令来使用ngClick,它只在触摸事件时触发?

Javascript 是否有AngularJS指令来使用ngClick,它只在触摸事件时触发?,javascript,angularjs,Javascript,Angularjs,只有通过触摸屏启动输入时,才可以调用方法吗?e、 在Surface Studio上,您有两种可能的输入设备-鼠标和触摸屏 我想根据所用输入设备的类型做出不同的反应。据我所知,功能检测不会起作用,因为它只能告诉我设备是否能够进行smth。但如果通过触摸屏调用了特定的操作,则不会这样做。我草草写下了以下指令 它甚至不太好,但现在它完全符合我的需要 angular.module('app').directive('tap', function ($parse) { return {

只有通过触摸屏启动输入时,才可以调用方法吗?e、 在Surface Studio上,您有两种可能的输入设备-鼠标和触摸屏


我想根据所用输入设备的类型做出不同的反应。据我所知,功能检测不会起作用,因为它只能告诉我设备是否能够进行smth。但如果通过触摸屏调用了特定的操作,则不会这样做。

我草草写下了以下指令

它甚至不太好,但现在它完全符合我的需要

angular.module('app').directive('tap', function ($parse) {
    return {
        restrict: 'A',
        compile: function($element, attr) {    
            return function (scope, element) {    
                element.on('touchstart', function(event) {    
                    var callback = function() {
                        $parse(attr['tap'])(scope, {$event: event});
                    };    
                    scope.$apply(callback);    
                });    
            };    
        }
    };
});
用法:

<a tap="mainCtrl.someTouchscreenAction()">Tap</a>
轻触

也许其他人会发现它很有用。

尝试过ngTouch吗?ngTouch只提供原始手势事件,还是我错过了smth?我不知道,我问过你是否尝试过…:-)我已经看过了,但它似乎只提供ngswipleft和正确的指令。我想它也会激发鼠标事件。我会写一个快速的指令,然后贴在这里。