Tôi đang cố gắng mô phỏng sự kiện nhấp chuột trên đầu vào tệp trong AngularJS. Tôi đã thấy working jQuery examples, nhưng tôi không muốn sử dụng jQuery.Kích hoạt sự kiện nhấp vào tệp đầu vào trong AngularJS
'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);
};
});
<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>
Lưu ý: Đối với một số lý do nút cần được nhấn hai lần để kích hoạt các chức năng thời gian chờ.
Tôi đang sử dụng setTimeout
vì this post.
Làm cách nào để nhấp vào một đầu vào tệp theo cách lập trình chỉ với JavaScript AngularJS/vanilla?
Mã trong câu hỏi cũng như câu trả lời được đề xuất là một mẫu chống nổi tiếng trong Angular.js - không thực hiện thao tác DOM trong bộ điều khiển của bạn, trừ khi nó nằm trong bộ điều khiển chỉ thị. – yangmillstheory