Вместо использования
ng-model-options="{ updateOn: 'blur' }
вы можете использовать
ng-model-options="{ debounce : { default : 500 } }"
и применить его к родительскому элементу в dom, например, к контейнеру div. Установка debounce
выше говорит Angular, чтобы оценивать правила проверки только после 500 миллисекунд бездействия.
Использование debounce
таким образом превосходит использование blur
, потому что blur создает проблемы для радио и флажков при применении ко всей форме.
Параметр debounce - это целочисленное значение, которое заставляет обновление модели задерживать целое число миллисекунд. Это уменьшает частоту циклов $digest
, что приводит к тому, что приложение js потребляет меньше ресурсов, а также позволяет пользователю вводить время до применения правил проверки.
YearOfMoo.com рекомендует использовать размытие и debounce, как это
ng-model-options="{ debounce : { default : 500, blur : 0 } }"
Теперь значение модели и валидации применяются сразу же после того, как пользователь вымывается из поля. Это устанавливает время ожидания 0 мс для события размытия. Blur переопределяет значение по умолчанию.