В настоящее время я добавляю директиву ng-model-options
в несколько полей ввода для устранения проблемы. Мои элементы выглядят так:
<input type="text" ng-model="search" ng-model-options="{ debounce: { 'default': 200 } }" />
Я хотел бы поместить это в директиву так:
- Моя разметка менее громоздкая.
- Я могу контролировать значение противодействия в одном месте на случай, если я захочу его изменить.
В конечном итоге я хочу, чтобы разметка выглядела так, где используется директива debounce
:
<input type="text" ng-model="search" debounce />
Я попытался реализовать эту директиву так:
app.directive('debounce', ['$compile', function ($compile) {
return {
restrict: 'A',
replace: false,
link: function (scope, element, attrs) {
element.attr('ng-model-options', "{ debounce: { 'default': 200 } }");
$compile(element.contents())(scope);
}
}
}]);
Похоже, что в результате получился правильный HTML, но отладчик ничего не делает. Что не так с моей директивой?