@Paramount1987

Почему директива обновляет данные с запаздыванием?

Приложение: paramount1987.github.io/angular-charges
код: https://github.com/Paramount1987/angular-charges/b...

Создал директиву, повесил событие "change" - работает странно ('с запаздыванием') - обновляет данные не сразу почему-то. Что не так?

app.directive('editInput',function($filter){
	return {
		restrict: 'E',
		replace: true,
		template: function(elem,attr){
			return	'<input type="number" class="td-input-item transparent"  ng-model="charge.value" />';
		},
		link: function(scope,element,attrs){
				element.bind('change',function(event){
					 // PieChart.segments[$filter('searchChartId')(PieChart.segments, +attrs.index)].value = element.value;
					 // PieChart.update();
					 scope.compoteTotalSum();
		       scope.compoteTotalCost();

				});
				element.bind('blur',function(){
					element.addClass('transparent');
				});
				element.bind('focus',function(){
					element.removeClass("transparent");
				});
		}
	};
});
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
Ангуляр не в курсе, что произошел какой-то event.
Вам нужно ему об этом сообщить.
Например при помощи $scope.$apply().
Чтобы этого избежать - можно использовать директивы angular js для событий:
ng-blur, ng-change, ng-focus и т.д.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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