Я пытаюсь загрузить файл csv в AngularJS, поэтому я могу сделать некоторые манипуляции с содержимым. Это не совсем так, как я хочу. Чтобы проверить, правильно ли загружается, я загружаю его в текстовое поле для просмотра содержимого.FileReader не загружает файл должным образом, используя AngularJS
Когда я загружаю файл, он говорит, что он загружен правильно, но событие onload(), похоже, не срабатывает, пока я не загружу второй файл CSV, и в этом случае FIRST-файл отображается в текстовом поле.
HTML:
<div>
<input ng-model="csv"
onchange="angular.element(this).scope().fileChanged()"
type="file" accept=".csv" id="fileInput"/>
</div>
<br/>
<div>
<textarea ng-model="csvFile" readonly="true" style="width:99%; height:500px" disabled></textarea>
</div>
JS:
$scope.fileChanged = function() {
$scope.$apply(function() {
var csvFileInput = document.getElementById('fileInput');
var reader = new FileReader();
var csvFile = csvFileInput.files[0];
reader.onload = function(e) {
$scope.csvFile = reader.result;
};
reader.readAsText(csvFile);
});
};
И когда я это в JSFiddle, файл не отображается в текстовое поле вообще. Я новичок в JSFiddle, поэтому я не знаю, почему это происходит.
Любая помощь вообще будет оценена по достоинству.
Вам нужно использовать $ parse Я думаю – aarosil
@aarosil Что вы имеете в виду? Где? – UpAllNight
Можете ли вы попробовать следующее: swap lines '$ scope. $ Apply (function()' и 'reader.onload = function (e) {' и теперь перемещать 'var reader = new FileReader();' before' reader.onload 'и' reader.readAsText (csvFile); 'после блока' reader.onload' – przno