Мне нужно загрузить файл для каждого элемента массива. Я использую ng-repeat
для итерации по массиву и плагина ng-file-upload для обработки и загрузки файлов. Ожидаемый результат будет состоять из нескольких форм. Один для каждой итерации ng-repeat
Проверка ng-file-upload не выполняется (форма всегда действительна)
Но по какой-либо причине валидация никогда не прерывается и форма всегда отправляется.
Просмотр кода (упрощенная для ясности):
<div ng-repeat="point in endpoints">
<div class="panel-body" >
<form name="uploadForm">
<div class="media-uploader button drop-box"
ng-model="file"
name="file"
ngf-drag-over-class="'dragover'"
ngf-accept="{{point.endpoint.type.acceptedFormat.join('/*,') }}/*"
ngf-select="uploadForm.$valid && submitUpload($file, point)"
ngf-drop="submitUpload($file, point)"
ngf-max-size="{{ maxFileUploadSize }}"
ngf-pattern="{{ point.endpoint.type.acceptedFormat.join('/*,') }}/*"
ngf-max-duration="{{ (point.timeslots * 15)+tolerance }}"
ngf-validate = "{width: {min: {{ point.endpoint.format.width }}, max:{{ point.endpoint.format.width }}},
height: {min: {{ point.endpoint.format.height }}, max: {{ point.endpoint.format.height }}}
}">
<p>Click or drag to select images and video</p>
</div>
</form>
<div class="has-error" >
<div ng-show="uploadForm.file.$error.maxHeight || uploadForm.file.$error.maxWidth ">
Media must be {{ point.endpoint.format.width }} × {{ point.endpoint.format.height }}px
</div>
<div ng-show="uploadForm.file.$error.maxSize">
Max upload size exceeded the maximum allowed size is 200MB
</div>
<div ng-show="uploadForm.file.$error.pattern ">
This endpoint only allows {{ point.endpoint.type.acceptedFormat.join(', ') }} uploads
</div>
<div ng-show="uploadForm.file.$error.maxDuration ">
Your video exceeds the maximum allowed time of {{ point.timeslots * 15 }} seconds.
</div>
</div>
</div>
Я подозреваю, что это имеет какое-то отношение объема uploadForm
внутри ng-repeat
, но если мое понимание ng-repeat
правильно каждая итерация должна иметь свой собственный охват.
Что мне не хватает?
Так что вы хотите использовать несколько форм или только одна форма с несколькими полями? –
@SambhavGore Множество форм для каждой итерации ng-repeat. Изменим вопрос, чтобы это было ясно. – AFK
Ну, в этом случае, я думаю, вам нужно указать название своей формы как динамическое. –