Ich habe eine Direktive, die ein Datei-Upload-Eingabefeld auf dem DOM platziert, und ich möchte dann die Möglichkeit, eine Funktion aufzurufen, wenn diese Datei geändert wird. Wie kann ich eine On-Change-Funktion erhalten, ohne sie im Compiler-Bereich zu platzieren? Ich weiß, dass es nicht dorthin gehört, da mir gesagt wurde, dass der Compiler speicherintensiver ist und nur für Pre-Render-Sachen verwendet werden sollte.Angular benutzerdefinierte Direktive ruft Funktion bei Änderung des Eingabefeldes
angular.module('myApp').directive('customDirective', ['$http', function ($http) {
return {
controller() {
},
compile(element) {
const $fileinput = $('<input type="file" accept=".csv">').appendTo(element);
return {
controller:() => {
$fileinput.on('change', (e) => {
// Stuff happens
});
},
link:() => {
},
};
},
};
}]);
ist, ich dachte, dass Sie nur ng Wechsel mit ng-Modell verwenden könnte? ng-Modell funktioniert nicht mit einer Datei:/https://docs.angularjs.org/api/ng/directive/ngChange –
@ToriHuang Ich habe meinen ursprünglichen Beitrag bearbeitet. Dies sollte für das funktionieren, was Sie brauchen –
Das ist super Detail, danke! –