@Camaro67
Помог? - "Отметить решением"

Как дать понять angularjs, что значение input изменилось?

Здравствуйте. Возникла такая проблема с angularjs: если изменить у input значение программным путем т.е. через javascript (например, document.getElementById("#input").value = "Новое значение" или jQuery("#input").val("Новое значение")), то angularjs не видит эти изменения. Как можно это исправить?
Ниже привожу пример проблемного кода. Заранее спасибо за помощь.

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="/angular.min.js"></script>
		<script type="text/javascript" src="/jquery-2.1.3.min.js"></script>
		<script type="text/javascript">
			jQuery(function () {
				jQuery("#input").val("Новое значение");
			});
		</script>
		<title>AngularJS</title>
	</head>
	<body ng-app>
		<input id="input" type="text" ng-model="value"><br>
		Вы ввели в поле выше: {{value}}<br>
	</body>
</html>
  • Вопрос задан
  • 1049 просмотров
Решения вопроса 1
jaxxreal
@jaxxreal
Fullstack Developer
Эмулируйте событие 'change':
jQuery("#input").val("Новое значение").change() 
либо 
jQuery("#input").val("Новое значение").trigger('change')


jsfiddle.net/7opjcw9c
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
keksmen
@keksmen
Just a programmer
Вопрос: зачем? Не проще ли произвести изменение в самой модели?
Ответ написан
VaaL2004
@VaaL2004
$scope.$apply();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы