Здравствуйте, у меня странная проблема, которая появляется только в IE 11 с angular 1.3.
У меня есть директива, которая позволяет мне хранить Object
как значение ngModel
элемента input
. Он без проблем работает с AngularJS 1.2, но не работает с AngularJS 1.3 (только в Internet Explorer).
Это просто код:
elem.on('input', function(){
var val = elem.val();
ngModel.$setViewValue({
'sampleData': new Date().getTime(),
'value': val
});
scope.$apply();
});
Когда я набираю текст в IE, ввод устанавливает правильный объект как значение модели в течение нескольких миллисекунд, но затем изменяет его на строку. В других браузерах корректно обновляет ngModel
.
Вы можете увидеть это странное поведение там:
AngularJS 1.2: http://jsfiddle.net/aartek/e6Lvpqj3/ (работает в IE, Chrome, и фаерфокс),
AngularJS 1.3: http://jsfiddle.net/aartek/mvx9dbyu/2/ (не работает в IE 11, работает в Chrome и Firefox)
В чем причина и как я могу это исправить?
Это вся моя директива:
app.directive('myInput',function(){
return{
restrict: 'A',
require: 'ngModel',
scope: {},
priority: 1,
link: function(scope, elem, attrs, ngModel){
elem.off('input');
elem.off('change');
ngModel.$render = function(){
var model = {
'sampleData': 'sampleData',
value: ''
}
ngModel.$setViewValue(model);
elem.val(model.value);
}
elem.on('input', function(){
var val = elem.val();
ngModel.$setViewValue({
'sampleData': new Date().getTime(),
value: val
});
scope.$apply();
});
}
}
});