我寫過這個例子hover counter指令在angularjs中。它可以工作,並將秒數寫入控制檯。它呈現「懸停我0」,但在計數時不更新數字。定時器計數器指令
angular.directive('countHoverTime', function() {
return {
link: function(scope, element, attributes) {
scope.seconds = 0;
var ticking = false;
var tickTock = function() {
scope.seconds++;
console.log('tick');
if (ticking) {
window.setTimeout(tickTock, 1000);
}
}
$(element).hover(function() {
console.log('Hover In');
scope.seconds = 0;
ticking = true;
tickTock();
}, function() {
console.log('Hover Out');
ticking = false;
console.log("Seconds: " + scope.seconds);
});
}
};
});
和HTML
<p count-hover-time>Hover me! {{ seconds }} </p>
我喜歡apairet關於angularizing的評論,而不是jquery for .hover,但是我仍然需要調用scope。$ apply()來完成dom更新。 – linojon 2014-10-01 22:33:20