我做了一段时间,让你可以通过点击一个按钮来增加或减少时间。但是,我想当我点击并按住按钮时,时间的价值会继续攀升。
所以目前如果你每次点击向上按钮看到Plunkr时值都会增加,但是我希望这样,所以当按住按钮时,值会增加1,2,3,4,5,6,7,8
,直到我释放按钮。< / p>
我怎么能达到这样的目标?
答案 0 :(得分:24)
<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>
将$ 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;
};
}
};
});