あなたは私を失礼する必要がありますが、私は角度を頻繁に使用しません。動的に生成された入力フィールドからファイルをアップロードできるソリューションを実装する必要があります。AngularJS 1.x:動的に作成された複数のファイルアップロードフィールド
キャッチは、私は(これは私が実装されAngularJSで使用していますフレームワークによるものである)任意のディレクティブを使用することができないということです。
フィールドを作成するための私の現在のコード:
$scope.addNewFile = function() {
var newFileNo = $scope.files.length + 1;
$scope.files.push({'id': 'file' + newFileNo});
};
$scope.removeFile = function() {
var lastFile = $scope.files.length - 1;
$scope.files.splice(lastFile);
};
そして、ここが原因静的id
とname
値のファイル(正確ではないが、アップロードするためのコードです:
$scope.uploadFile = function() {
var file = document.getElementById('file').files[0],
r = new FileReader;
r.onloadend = function (e) {
var data = e.target.result;
console.log('data');
console.log(data);
// http.post
};
r.readAsArrayBuffer(file);
};
そして、ここでは私のHTMLです:
<div data-ng-repeat="file in files">
<div class="row top-buffer">
<div class="col-lg-10">
<input type="file"
ng-model="file.name"
name="file"
class="form-control"
id="file">
</div>
<div class="col-lg-2 text-right">
<div class="btn btn-primary" ng-click="uploadFile()">Upload</div>
</div>
</div>
</div>
<div class="row top-buffer">
<div class="col-lg-11"></div>
<div class="col-lg-1 text-right">
<div class="glyphicon glyphicon-plus" aria-hidden="true" ng-click="addNewFile()"></div>
<div class="glyphicon glyphicon-minus" aria-hidden="true" ng-click="removeFile()"></div>
</div>
</div>
n動的に生成されるファイルフィールドの値を取得します。
「ng-repeat」はありませんか?なぜディレクティブを使用できないのですか?それは一方または両方のフレームワークの悪い使用のように思えます。 – ryanyuyu
私はそれを理解しています。しかし、それは他のフレームワークがどのように構築されているかによる...だから私は解決策を見つける必要がある。 –
ファイルで何をしようとしているのかは不明です。あなたはjavascriptで実際のファイルの内容が必要ですか?サーバーにPOSTするときに 'formData'を使用するだけではどうですか? – ryanyuyu