【发布时间】:2016-05-23 20:50:10
【问题描述】:
我在关闭 $mdDialog 后尝试使用他的点击事件来调用文件输入时遇到了一个奇怪的行为。
当我在不使用 $mdDialog 的情况下调用点击事件时,一切正常,但使用对话框时,上传文件选择弹出窗口永远不会显示。
HTML 代码
<input type="file" id="file" ng-hide="true" />
<button ng-click="tryUploadFile($event)" />
JavaScript 代码
$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();
}
当进入 else 情况时一切正常,但是当对话框出现以确认用户操作时,文件输入不显示。
PS:函数 openFileChooser 在这两种情况下都被正确调用。我把console.log放进去确认一下。
有人知道为什么会这样吗?
谢谢你们。
【问题讨论】:
标签: javascript angularjs angular-material