Мне нужно получить в директиве значение ввода текста, используя ng-модель для отправки значения в базу данных. Если я использую в своей директиве событие нажатия клавиши и напишу, например, 1234 в своем вводе, результат, показанный в моей директиве, будет 123, если я написал abc, результат будет ab. Если я использую keyup, этой проблемы не существует (проверено с Firefox и Chrome). Почему это происходит?
Мой код:
.directive('updateDbb', ["$http", function ($http) {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
// Listen for change events to enable binding
var ngModelValue, inputName, testValid, dbbFieldName, idDbb;
element.bind('keydown', function () {
ngModelValue = ngModel.$viewValue;
console.log(ngModelValue); // Show with delay, not the case with "keyup"!!!
...
keydown
— это первая часть событияkeypress
.keydown
- это когда набор символа завершен, и значение затем привязано. - person codemonkey   schedule 22.09.2015