2015-08-19 4 views
0

У меня есть следующий вход и он обновляет модель на событии размытия.Следите за текущим значением ввода с обновлением при размытии

<input 
    es-max-type 
    class="headline" 
    ng-change="edit(selectedRow, '{{selectedRow.name}}');" 
    ng-model="selectedRow.name" 
    ng-model-options="{ updateOn: 'blur' }"/> 

Директива es-max-type наблюдает за длиной строки.

scope.$watch(function() { 
    return scope.ngModel 
}, function(text) { 
    if(text) { 
     scope.currentLen = text.length; 
    } 
}); 

Всякий раз, когда ввод сфокусирован, я показываю в углу «15/100» количество символов. Но так как модель обновляется только по событию размытия, я не могу отслеживать изменения во время редактирования. Есть ли способ получить длину строки без удаления обновления при размытии?

+0

Попробуйте ng-keydown (https://github.com/j-ulrich/jquery-simulate-ext) и не используйте наблюдателя. Это не хорошо для производительности. –

+0

Итак, как я могу получить длину строки, используя ng-keydown? Я не могу считать символы, так как пользователь может удалить символ ... Должен ли я также отслеживать клавиши «удалить»? –

+0

Посмотрите на документы: https://docs.angularjs.org/api/ng/directive/ngKeypress есть пример. –

ответ

0

Попробуйте прослушать событие ввода. И не «изменить» или «размыть»