Parsen einer CSV-Datei zur Verfügung gestellt, die durch eine Eingabe in Eckigen
Ich bin erstellen einer webapp, die Funktionen uploads .csv-Datei.
Statt das hochladen der ganzen Datei auf meinem server, dann hinzufügen alle Zeilen in einer Tabelle, Dank PHP, ich möchte Parsen der Datei in Eckigen, dann fügen Sie analysierten Linien (Dank Restangular). Auf diese Weise, ich sollte in der Lage sein, um etwas von "Fehler" vor dem hochladen (oder auch nicht).
In einer Ansicht, die ich angelegt habe eine einfache Datei-Eingabe, mit der eine Richtlinie genannt-Datei (Quelle : http://angularjstutorial.blogspot.fr/2012/12/angularjs-with-input-file-directive.html)
<input type="file" data-file="param.file" />
Den file
Richtlinie :
app.directive('file', function(){
return {
scope: {
file: '='
},
link: function(scope, el, attrs){
el.bind('change', function(event){
var files = event.target.files;
var file = files[0];
scope.file = file ? file.name : undefined;
scope.$apply();
});
}
};
});
Diese Weise kann ich abrufen, wenn der Benutzer wählt eine Datei aus. Leider bin ich immer nur der Datei name.
Möchte ich zum Parsen der csv-Format in eine Zeichenfolge, die wir teilen Dank dieser filter (Quelle : Parsen von CSV in Javascript und AngularJS) :
app.filter('csvToObj',function(){
return function(input){
var rows=input.split('\n');
var obj=[];
angular.forEach(rows,function(val){
var o=val.split(';');
obj.push({
designation:o[1],
...
km:o[11]
});
});
return obj;
};
});
Wie kann ich das abrufen der Daten in der csv-Datei durch die Eingabe anstelle der Datei-name ?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich fand die Lösung durch die Suche auf bestehende Module, die das hochladen von Dateien. Nur ich poste es hier, wenn das interessiert jemanden.
In der Ansicht habe ich geändert die Richtlinie, um das Ereignis auszulösen :
Die Richtlinie ist jetzt :
In der Steuerung (vergessen Sie nicht, fügen Sie $filter im controller, wenn Sie es verwenden möchten) :
Der filter ist immer noch der gleiche (es sei denn, ich habe verschoben, das Zeilen-array nicht importieren Sie die Kopfzeile meiner csv-Dateien).