2013-06-10 10 views
0

Я пытаюсь загрузить несколько файлов с помощью угловых JS, но значения не получают хранятся в модели файлового хранилищаAngularJs FTP несколько файлов

Htmlcode:

<div ng-app="myApp"> 
    <div ng-repeat="file in filelist"> 
      <label>{{file.name}} </label> 
      <input type="file" ng-model="filestore[$index]" /> 
    </div> 
</div> 

<div> 
    <input type="button" value="submit" ng-click="savefiles(filestore)"/> 
</div> 

ЯШ:

myApp.controller('uploadCtrl', function ($scope,$http) { 

//list of file names 
$scope.filelist = ["file1", "file2", "file3"]; 

//save file list 
$scope.savefilelist = function(filestore) { 
    $http({ 
     method: 'POST', 
     url: '/api/SaveFiles', 
     data: filestore 
    }); 
}; 

})

+0

Угловой не поддерживает ng-модель на элементах файла –

+0

Является ли filestore стандартным массивом объектов js? – Chandermani

+0

yes filestore является стандартным js-объектом aaray для хранения файлов – Mahen

ответ

0

http://plnkr.co/edit/7b0G59z0ExglBane87um?p=preview

Вот пример того, как вы могли бы это сделать по специальной директиве.

app.directive("fileBind", function() { 
    return function(scope, elm, attrs) { 
    elm.bind("change", function(evt) { 
     scope.$apply(function() { 
     scope[ attrs.fileBind ] = evt.target.files; 
     }); 
    }); 
    }; 
}); 

Если вам нужно использовать ng-repeat, вот альтернативное решение.

http://plnkr.co/edit/aJAmbo?p=preview

  1. использование объекта при использовании связывания в пределах нг-повтора цикла.
  2. использовать привязку в директиве, чтобы можно было легко реализовать сложную ссылку.
+0

Я попробовал ... но ng-repeat не печатает все файлы .. его принимает только последний файл ... – Mahen

+0

также я хочу иметь несколько файлов для загрузки ... обновил ваш плункер http://plnkr.co/edit/DF2WYU – Mahen

+0

Существует два способа выбрать несколько файлов: атрибут 'multiple' в элементе ввода (мой плункер) или несколько входных элементов (ваш путь). Это зависит от того, что вы предпочитаете. – Tosh

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