ng-change обновить модель с задержкой
Каждый. У меня проблема с angularjs. Я создал пользовательскую директиву для ввода [type="text"] и передал переменную как модель. Но событие ng-change называется функцией с предыдущим значением переменной. Пример: Состояние: 0, Тип 1, В функции - 0. Состояние: 1, Тип 548, В функции - 1. Состояние:548, Тип 3, В функции 548.
Мой HTML:
<div ng-controller="simpleCTRL">
<mr-textfield is-required="true" value="val" title="Minutes" type="text" change="ChangeVal()"></mr-textfield>
<input type="text" ng-model="val" ng-change="ChangeVal()"/>
</div>
</div>
И JS:
<!-- language: lang-js -->
angular.module('SimpleInterestApp', [])
.controller('simpleCTRL', function($scope) {
$scope.val = 0;
$scope.ChangeVal = function() {
console.log($scope.val);
};
})
.directive('mrTextfield', function () {
return {
restrict: 'E',
template: "<div class='textfield'><input type='{{::type}}' ng-required='isRequired' ng-model='value' ng-change='change()'><span class='bar'></span><label>{{::title}}</label></div>",
replace: true,
transclude: true,
scope: {
value:"=",
title:"@",
type:"@",
isRequired:"=",
change:"&"
}
};
});
1 ответ
Решение
Заворачивать console.log
внутри $timeout
,
$scope.ChangeVal = function() {
$timeout(function() {
console.log($scope.val);
})
};
Смотри рабочий плункер.