2015-06-09 1 views
0

У меня есть следующий входной элемент:

 <div class="form-group"> 
        <label>Attach BOL Document</label> 
           <input name="file" type="file" class="form-control" onchange="angular.element(this).scope().uploadFile(this.files)" /> 
     </div> 

В мой контроллер (за пределами какой-либо функции) Я установить переменную как это:

$scope.fd = new FormData(); 

и я имеют следующие функции определяется, что пожары OnChange входного элемента, как показано выше:

$scope.uploadFile = function (files) { 
    console.log(files[0]); 
    $scope.fd.append("file", files[0]); 
    console.log($scope.fd); 

}; 

Первый console.log выводит Fi le, поскольку я ожидаю, поэтому я знаю, что это передается в мою область. Проблема заключается в том, что второй console.log выводит пустой объект FormData. Объект File не добавляется?

Я подумал, что это было что-то делать с тем, что я объявляющего $ scope.fd вне функции UploadFIle, но даже объявив ее внутри функции не работает ...

Почему ???

+1

Не приложено или не отражено в представлении? потому что вы не выполняете '$ scope. $ apply()' – PSL

+0

что с фанкой ссылкой в ​​'onchange'? в этом примере нет каких-либо оснований для использования 'angleular.element', о котором я знаю? – Claies

+0

Я думаю, что он не добавляется, поскольку я вижу пустой объект FormData в инструкции console.log, отображаемом в консоли JavaScript. Я не пытаюсь обновить представление этим значением, оно будет отправлено на сервер через $ http. «Напуганная» ссылка с onchange связана с тем, что ng-модель не поддерживается в качестве входного типа «файл». См. Это сообщение для справки: –

ответ

0

Ну, я понял, что происходит здесь. Это не имеет никакого отношения к AngularJs. Вы не можете проверять ключи, добавленные к объекту FormData. Смотрите этот вопрос для ссылки

How to inspect FormData?

Это действительно воняет ... Так что пока я не на стороне сервера код готов, и я на самом деле POST данные, которые я не могу сказать, если файл на самом деле получить прилагается. Я уверен, что это, однако, я не могу подтвердить это.

Смежные вопросы