由于某些动画,如果用户过快切换复选框的状态,则会出现视觉故障。
为了防止这种情况发生,我想限制可以更改状态的频率。我认为一个巧妙的方法是指令。
我已经成功地制定了一个指令,防止ng-click
以超过一定的频率触发,但复选框有一个特定的问题。
这是指令代码(coffeescript):
angular.directive 'pxnMaxClickFreq', ($timeout)->
restrict: 'A'
# Make sure our event binding runs before any other directive
priority: -100
link: (scope, element, attributes)->
timer = false
element.on 'click', (e)->
if timer
e.preventDefault()
e.stopImmediatePropagation()
else
timer = true
$timeout( (-> timer = false), attributes.pxnMaxClickFreq )
还有一个证明我的问题的笨蛋。
概括
ngModel
当它指定的复选框被点击时,即使默认值被阻止,导致复选框永远不会被选中,它也会被更新。我怎样才能避免这种情况?
理想情况下,我不想与 集成,ngModelController
因为我想让指令尽可能抽象。