Como posso ouvir um click-and-hold no AngularJS?

Eu fiz um contador de tempo que permite aumentar ou diminuir o tempo clicando em um botão. Eu gostaria, no entanto, que quando eu clicar e segurar o botão, o valor do tempo continuaria subindo.

Então, atualmente, se você ver meu Plunkr cada vez que eu clico no botão up, o valor aumenta, mas eu quero isso, então quando eu mantenho o botão pressionado, o valor aumenta 1,2,3,4,5,6,7,8 até botão.

Como eu poderia conseguir algo assim?

DEMO

 {{ Time | timeFilter }} 

Use a diretiva ng-mouseDown e ng-mouseup com $ interval

 app.directive('time', function ($interval) { return { templateUrl: 'time.html', restrict: 'E', scope: { Time: '=value' }, link: function (scope, element, attrs) { element.addClass('time'); var promise; scope.mouseDown = function() { if(promise){ $interval.cancel(promise); } promise = $interval(function () { scope.Time++; }, 100); }; scope.mouseUp = function () { $interval.cancel(promise); promise = null; }; } }; });