私のウェブサイトは現在、AngularJS v1.2.8 で debounce ディレクティブを使用しています。FF と Chrome ではデバウンスは問題ありませんが、IE9 では遅延は発生しません。IE9 をサポートするという厳格な要件があり、新しいバージョンの Angular にアップグレードできません。このコードのどの部分が IE9 と互換性がありませんか? または、IE9 で動作することが既に知られているデバウンス ディレクティブがある場合は、大いに感謝します。
現在のデバウンス ディレクティブ:
angular.module('stuff.debounce', []).directive('ngDebounce', function($timeout) {
return {
restrive: 'A',
require: 'ngModel',
priority: 99,
link: function(scope, elm, attr, ngModelCtrl) {
if(attr.type === 'radio' || attr.type === 'checkbox') return;
elm.unbind('input');
var debounce;
elm.bind('input', function() {
$timeout.cancel(debounce);
debounce = $timeout( function () {
scope.$apply(function() {
ngModelCtrl.$setViewValue(elm.val());
});
}, attr.ngDebounce || 1000);
});
elm.bind('blur', function() {
scope.$apply(function() {
ngModelCtrl.$setViewValue(elm.val());
});
});
}
};
});