我做了一个时间转换器,您可以通过单击按钮来增加或减少时间。但是,我希望当我单击并按住按钮时,时间的价值将继续攀升。
因此,当前,如果您每次单击向上按钮时都看到我的Plunkr,则该值会增加,但是我希望这样做,因此当我按住按钮时,该值会增加,1,2,3,4,5,6,7,8直到释放按钮为止。
1,2,3,4,5,6,7,8
我怎样才能实现这样的目标?
演示
<span class="time">{{ Time | timeFilter }}</span> <div class="btn-group btn-group-sm"> <button class="btn btn-default" ng-mousedown='mouseDown()' ng-mouseup="mouseUp()"> <i class="fa fa-caret-up"></i> </button> <button class="btn btn-default" ng-click="Time = Time - 1"> <i class="fa fa-caret-down"></i> </button> </div>
将ng-mouseDown和ng-mouseup指令与$ 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; }; } }; });