zu beginnen, ich bin ein totaler Anfänger in Bezug auf Angular machen. Es ist einfach so passiert, dass ich begonnen, ein Projekt zu starten mit JHipster die Verwendung von Angular macht.Angular nicht ändert, nachdem Textbereich Dateieingabe
Meine Situation ist wie folgt:
ich einen Textbereich haben, wo ein Benutzer in einem Text schreiben können. Nachdem der Benutzer eines Unter den Änderungen in dem Textfeld am Ende der Seite einreichen drückt gerettet werden. Das allein funktioniert gut.
Ich habe versucht, die Funktionalität meiner Maske zu erhöhen, indem Sie eine input type = file
hinzufügen, in der der Benutzer eine TXT-Datei seiner Wahl hochladen kann. Der Text wird dann in das Textfeld geschrieben, ich diese Javascript verwenden, um die Dinge passieren:
function filechooser(evt) {
var files = $('#fileinput').prop('files'); // FileList object
var reader = new FileReader();
for (var i = 0, f; f = files[i]; i++) {
if (f) {
var name = f.name;
reader.onload = function (e) {
var txtField = $("#field_content");
var txtContents = txtField.val();
var contents = e.target.result;
txtField.val(txtContents + "<!--" + name + "-->" +
"\n" + "<!--" + "generated from import" + "-->" +
"\n" + "<!--" + getFormattedDate() + "-->" + "\n" + "\n" +
contents);
}
reader.readAsText(f);
//$scope.editForm.content.$setDirty();
//$scope.ngModel.$render();
} else {
alert("Failed to load file");
}
}
}
diese Methode funktioniert wie erwartet und der Text vom Benutzer ausgewählten Datei wird whitin das Textfeld geschrieben.
<textarea class="form-control topic" name="content" id="field_content" ng-model="vm.topic.content"></textarea>
<!-- filechooser -->
<input type="file" id="fileinput"/>
<button type="button" id="fileinputSubmit" ng-click="vm.filechooser()"> submit </button>
Das Problem:
Es scheint, dass Angular erkennt keine Änderungen von meinem programmatisch eingefügten Text. Das bedeutet, dass mein Textfeld bleibt ng-pristine, ng-unangetastet usw. Welche weitere bedeutet, dass die Taste nicht meine Änderungen nicht einreichen schlagen speichern als Angular nur knapp sein Ziel, sie aus dem erzeugten Text erfassen. Wenn ich den Text durch meinen Input schreiben und zusätzlich tun, um eine Benutzereingabe, wie ein einfaches, durch Leerzeichen, die sparen Mechanismus funktioniert gut.
Wie kann ich feststellen Eckige zu meiner Form zu machen oder meine TextArea- revailidate? Hilfe wird sehr geschätzt! Danke im Voraus.
versuchen. aber ich ziehe es vor, die Dinge eher eckig zu machen als jquery zu benutzen. – Sravan
Das ist nicht der * eckige Weg *, um diese Art von Dingen zu tun ... – Mistalis