我试图通过angularjs在html中找到元素.
这是html:
<button class="btn btn-primary multi-files" type="button">
<span>Choose multiple files</span>
</button>
<br/><br/>
<input ng-file-select type="file" multiple style="display: none"/><br/>
Run Code Online (Sandbox Code Playgroud)
我试图通过类名多文件获取按钮元素,然后我尝试了
var multibutton = angular.element(element.getElementsByClassName(".multi-files"));
Run Code Online (Sandbox Code Playgroud)
但它不起作用,并尝试element.find但它只适用于标签.
是否有任何函数可以在angularjs中通过id或classname获取元素?
我正在尝试触发<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事件.
我试图模仿AngularJS中的文件输入上的单击事件.我见过工作jQuery示例,但我不想使用jQuery.
'use strict';
angular.module('MyApp', []).
controller('MyCtrl', function($scope) {
$scope.click = function() {
setTimeout(function() {
var element = angular.element(document.getElementById('input'));
element.triggerHandler('click');
$scope.clicked = true;
}, 0);
};
});Run Code Online (Sandbox Code Playgroud)
<script src="https://code.angularjs.org/1.3.14/angular.js"></script>
<div ng-app="MyApp" ng-controller="MyCtrl">
<input id="input" type="file"/>
<button ng-click="click()">Click me!</button>
<div ng-if="clicked">Clicked</div>
</div>Run Code Online (Sandbox Code Playgroud)
注意:由于某种原因,需要按两次按钮才能触发超时功能.
我正在使用setTimeout因为这篇文章.
如何使用AngularJS/vanilla JavaScript以编程方式单击文件输入?