Я использую angular 1.3.0rc2, и я пытаюсь иметь поле ввода при размытии, установить другое поле ввода, как если бы оно было введено пользователем.
Если на вводе, который я пытаюсь установить, существует только синхронный валидатор, а не валидаторы debounce или async, все всегда работает так, как ожидалось, когда я делаю что-то вроде:
myForm.username.$setViewValue('some value');
myForm.username.$render();
Однако все работает не так, как ожидалось, когда на вводе, который я пытаюсь установить, существует либо асинхронный валидатор, либо средство устранения дребезга, и когда ввод, который я пытаюсь установить, находится в недопустимом состоянии.
Я создал следующий plunkr, чтобы продемонстрировать свои беды. Попробуйте установить значение "Полное имя" и посмотрите, что произойдет с полем Имя пользователя, которое я также хочу установить на размытие поля Полное имя поле. Когда поле Имя пользователя находится в недопустимом состоянии, изменение значения Полное имя и последующее снятие фокуса с поля не обновляет Имя пользователя, поскольку я ожидать.
http://plnkr.co/edit/h1hvf79W8ovqAlNLpBvS
Итак, мой вопрос: как я могу установить одно поле ввода из другого таким образом, чтобы оно работало надежно и действовало так, как будто пользователь сам ввел этот новый ввод (таким образом, пройдя через валидаторы и соответственно обновив значение модели)?