0

我正在尝试使用 Angular js 上传多个文件,但这些值没有存储在模型文件存储中

html代码:

 <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>

js:

 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
    });
 };

})

4

1 回答 1

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. 如果在 ng-repeat 循环中使用绑定,则使用对象。
  2. 在指令中使用绑定,以便可以轻松实现复杂的引用。
于 2013-06-11T01:30:54.123 回答