@Paramount1987

Запись в массив и обновление данных на странице?

Ссылка на приложение: paramount1987.github.io/angular-charges
сам код: https://github.com/Paramount1987/angular-charges/b...

Проблема при редактировании суммы доходов. При событие onblur обновление данных происходит не сразу, только при повторном событии (но значение помнит), почему так?. Не хватает знаний, что и куда копать.

Пишу простое приложение для изучения angular (и javascript в том числе).
Код редактирования суммы.
$scope.valueEdit = function(event,index,obj){

		var input = document.createElement('input');
		input.setAttribute('type','number');
		input.setAttribute('class','td-input-item');
		input.setAttribute('data-index',index);
		input.value = obj.value;
		event.currentTarget.appendChild(input);
		input.focus();

	input.onblur = function(){
			$scope.charges[this.getAttribute('data-index')].value = this.value;
			this.parentNode.removeChild(this);
		};

	};
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
Все намного проще: ангуляр не знает, что нужно провести $digest цикл при событии onBlur. Возможные пути решения: 1. Обернуть изменение значений $scope в конструкцию $scope.$apply(). Это самый быстрый, но не самый хороший способ. Лучше будет создать директиву с нужным вам функционалом, а для бинда событий использовать директивы ангуляра(ng-click, ng-blur,....). Вообще, постарайтесь как можно меньше использовать операции с DOM, и если такое требуется - выносите операции в link функции директив
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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