Kann ich ng2-Datei-upload mit dem button statt ein file-input?
Ich bin mit ng2-Datei-upload (Einzel-upload-Beispiel) und ich verwenden möchte: ng2FileSelect
mit einer Schaltfläche oder ein div-Element statt eines Datei-Eingabe. Wie kann ich dies tun?
Möchte ich dies zu tun so etwas wie dieses:
<button ng2FileSelect [uploader]="uploader">Choose file</button>
Statt:
<input type="file" ng2FileSelect [uploader]="uploader" />
Wenn nicht vorhanden eine saubere Art und Weise mit ng2-Datei-upload, wissen Sie eine alternative?
- Finden Sie einen Weg, dies zu erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine mögliche Lösung ist die Nutzung von Winkel-2 template-Variablen und zuweisen einer template-Variablen zum input-element; sobald Sie dies getan haben, können Sie direkt aufrufen von Methoden definiert, dass die Eingabe von einem anderen element, beispielsweise eine Schaltfläche.
Habe ich Folgendes in einer meiner Anwendungen; es funktioniert auf IE11, Firefox, und Chrome:
So wie Sie sehen können, ist die Schaltfläche einfach den Aufruf der #fileInput click-Ereignis innerhalb seiner eigenen click-Ereignis.
Beachten Sie, dass ich zu begraben, der Eingang innerhalb einer span, und dann verstecken Sie die Spanne von der Ansicht über eine Reihe von Stilen, so dass nur der button sichtbar ist. Beachten Sie auch, dass die Anwendung dieser Stile, um das input-element direkt schien, zu Problemen in IE11.
Yon wickeln kann
input[file]
- element mit label-element und blenden es. Sehen diese Antwort und dieses BeispielHier ist der code.
HTML:
CSS:
In einer einfachen Art und Weise, die Sie tun können, es mit label, Sie müssen nur ausblenden, die Eingang.
HTML: