recorrer not index for es6 array javascript angularjs mousedown mouseup touchstart

javascript - not - ng-touchstart y ng-touchend en Angularjs



javascript for array (3)

Tengo un elemento que ng-mousedown funciones en ng-mousedown y ng-mouseup . Sin embargo, no funciona en la pantalla táctil, ¿hay alguna directiva como ng-touchstart y ng-touchend ?


Hay un módulo para esto: https://docs.angularjs.org/api/ngTouch

Pero también puedes escribir tus propias directivas para eventos:

<!doctype html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js"></script> </head> <body ng-app="plunker"> <div ng-controller="MainCtrl"> <div my-touchstart="touchStart()" my-touchend="touchEnd()"> <span data-ng-hide="touched">Touch Me ;)</span> <span data-ng-show="touched">M-m-m</span> </div> </div> <script> var app = angular.module(''plunker'', []); app.controller(''MainCtrl'', [''$scope'', function($scope) { $scope.touched = false; $scope.touchStart = function() { $scope.touched = true; } $scope.touchEnd = function() { $scope.touched = false; } }]).directive(''myTouchstart'', [function() { return function(scope, element, attr) { element.on(''touchstart'', function(event) { scope.$apply(function() { scope.$eval(attr.myTouchstart); }); }); }; }]).directive(''myTouchend'', [function() { return function(scope, element, attr) { element.on(''touchend'', function(event) { scope.$apply(function() { scope.$eval(attr.myTouchend); }); }); }; }]); </script> </body> </html>


La versión que creamos usa $ parse (), que es lo que $ eval () usa internamente. Específicamente, queríamos manejar los eventos de inicio de ratón y de inicio táctil utilizando una sola directiva, pero de manera angular para que podamos incluir expresiones de estilo angular.

Al igual que:

angular.module("ngStudentselect", []).directive(''ngStudentselect'', [''$parse'', ''$timeout'', ''$rootElement'', function($parse, $timeout, $rootElement) { return function(scope, element, attr) { var clickHandler = $parse(attr.ngStudentselect); element.on(''mousedown touchstart'', function(event) { scope.$apply(function() { clickHandler(scope, {$event: event}); }); }); }; }]);

Esta es una versión reducida de la directiva ngClick de angular.