Angular js - метод контроллера запускается дважды при быстром последовательном нажатии клавиши ввода при использовании ng-enter - PullRequest
0 голосов
/ 19 октября 2018

В настоящее время у меня есть текстовое поле, и я использую метод контроллера внутри директивы ng-enter, чтобы сохранить данные, введенные в текстовое поле.

<input ng-enter="callMeToSave()"/>

Проблема заключается в том, что, когда я дважды нажимаю кнопку ввода, метод контроллера, упомянутый в ng-enter, вызывается дважды.Есть ли способ ограничить это?Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете использовать $ timeout с флагом в ng-enter , так что когда вы нажимаете ввод в первый раз, вы устанавливаете флаг (что-то вроде enterPressed) в true и используете$ timeout, чтобы установить его в ложь, когда интервал пройден.Когда вы нажимаете ввод в следующий раз, сделайте так, чтобы он проверял флаг enterPressed.Если true, тогда игнорируйте его, потому что вы только что нажали enter;в противном случае, это первый раз, когда вы нажимаете ввод за какое-то время, поэтому выполните свою функцию здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...