我正在尝试触发<input type="file">
元素的click事件button
.
<input id="upload"
type="file"
ng-file-select="onFileSelect($files)"
style="display: none;">
<button type="button"
ng-click="angular.element('#upload').trigger('click');">Upload</button>
Run Code Online (Sandbox Code Playgroud)
通常的做法是隐藏已知的uglified beast <input type=file>
并通过其他方式触发它的click事件.
J S*_*off 35
如果您的输入和按钮是兄弟姐妹(并且它们在您的情况下是OP):
<input id="upload"
type="file"
ng-file-select="onFileSelect($files)"
style="display: none;">
<button type="button" uploadfile>Upload</button>
Run Code Online (Sandbox Code Playgroud)
使用指令将按钮的单击绑定到文件输入,如下所示:
app.directive('uploadfile', function () {
return {
restrict: 'A',
link: function(scope, element) {
element.bind('click', function(e) {
angular.element(e.target).siblings('#upload').trigger('click');
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
cho*_*ovy 14
所以这是一个简单的修复.只需将其移动ng-click
到范围单击处理程序:
<input id="upload"
type="file"
ng-file-select="onFileSelect($files)"
style="display: none;">
<button type="button"
ng-click="clickUpload()">Upload</button>
$scope.clickUpload = function(){
angular.element('#upload').trigger('click');
};
Run Code Online (Sandbox Code Playgroud)
小智 6
我有同样的问题,这个小提琴是shizzle :)它使用一个指令来正确设置文件字段的样式,你甚至可以使它成为一个图像或其他什么.
http://jsfiddle.net/stereosteve/v5Rdc/7/
/*globals angular:true*/
var buttonApp = angular.module('buttonApp', [])
buttonApp.directive('fileButton', function() {
return {
link: function(scope, element, attributes) {
var el = angular.element(element)
var button = el.children()[0]
el.css({
position: 'relative',
overflow: 'hidden',
width: button.offsetWidth,
height: button.offsetHeight
})
var fileInput = angular.element('<input type="file" multiple />')
fileInput.css({
position: 'absolute',
top: 0,
left: 0,
'z-index': '2',
width: '100%',
height: '100%',
opacity: '0',
cursor: 'pointer'
})
el.append(fileInput)
}
}
})
Run Code Online (Sandbox Code Playgroud)
<div ng-app="buttonApp">
<div file-button>
<button class='btn btn-success btn-large'>Select your awesome file</button>
</div>
<div file-button>
<img src='https://www.google.com/images/srpr/logo3w.png' />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
134432 次 |
最近记录: |