HTML:
<form name="form">
<input type="file" ng-model="document" valid-file required>
<input type="submit" value="{{ !form.$valid && 'invalid' || 'valid' }}">
</form>
Пользовательская директива для прослушивания ввода [type = file] изменяется:
myApp.directive('validFile',function(){
return {
require:'ngModel',
link:function(scope,el,attrs,ngModel){
//change event is fired when file is selected
el.bind('change',function(){
scope.$apply(function(){
ngModel.$setViewValue(el.val());
ngModel.$render();
});
});
}
};
});
Когда файл выбран, в консоли появляется следующая ошибка:
Ошибка: InvalidStateError: ошибка DOM 11 Ошибка: попытка была сделана использовать объект, который не является или больше не может использоваться.
Попробуйте с помощью plunkr: http://plnkr.co/edit/C5j5e0JyMjt9vUopLDHc?p=preview
Без директивы состояние поля входного файла не будет вытолкнено. $valid. Любые идеи, почему я получаю эту ошибку и как это исправить?