Ich stehe vor einem merkwürdigen Verhalten, wenn ich versuche, eine Dateieingabe aufzurufen, indem ich nach dem Schließen eines $ mdDialogs sein Klickereignis verwende.
Wenn ich das Click-Ereignis ohne Verwendung des $ mdDialog aufrufen, funktioniert alles gut, aber mit dem Dialog die Upload-Datei wählen Sie Popup nie anzeigen.
Html-Code
<input type="file" id="file" ng-hide="true" />
<button ng-click="tryUploadFile($event)" />
JavaScript-Code
$scope.tryUploadFile = function(event) {
upload(angular.element(document.body), 'Upload file', 'Cancel', event);
}
function upload(_parent, _okText, _cancelText, _event) {
if($scope.hasCurrentChanges) {
confirm = $mdDialog.confirm()
.parent(_parent)
.title('Are you sure you want to update?')
.content('This item is already in use, updates maybe change its behavior.')
.ariaLabel('Update')
.ok(_okText)
.cancel(_cancelText)
.targetEvent(_event);
$mdDialog.show(confirm).then(openFileChooser);
}
else {
openFileChooser();
}
}
function openFileChooser() {
console.log("invoked");
// Opens the file selector
angular.element(document.querySelector('#file')).click();
}
Wann geht an den anderen Fall alles funktioniert gut, aber wenn der Dialog zeigt bis zu den Benutzern Betrieb der Datei-Eingabe Doesn bestätigen nicht zeigen.
PS: Die Funktion openFileChooser wird in beiden Fällen korrekt aufgerufen. Ich stelle die console.log ein, um sicherzugehen.
Jeder hat eine Idee, warum das passiert?
Danke Jungs.
Danke M_A_T. Das hat funktioniert. –