我想加載一個csv文件到AngularJS,所以我可以做一些操作的內容。這不是我想要的。爲了測試它是否正確加載,我將它加載到textarea中以查看內容。FileReader無法正確加載文件使用AngularJS
當我加載文件時,它表示它正確加載,但onload()事件似乎沒有被觸發,直到我加載第二個CSV文件,在這種情況下FIRST文件顯示在textarea中。
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,該文件不會出現在textarea的根本。我是JSFiddle的新手,所以我不知道爲什麼會這樣。
任何幫助都將不勝感激。
你需要使用$ parse我認爲 – aarosil 2014-10-02 17:43:19
@aarosil你是什麼意思?哪裏? – UpAllNight 2014-10-02 18:11:33
你可以嘗試以下方法:swap行$ scope。$ apply(function()'和'reader.onload = function(e){'現在移動'var reader = new FileReader();''reader.onload ''和'reader.readAsText(csvFile);''在'reader.onload'後面的塊 – przno 2014-10-02 18:49:36