Подтвердить что ты не робот

Событие нажатия на вход триггера в AngularJS

Я пытаюсь эмулировать событие 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);
  };
});
<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>
4b9b3361

Ответ 1

Вы можете просто использовать

 <button type="button" onclick="document.getElementById('input').click()">Click me!</button>

ИЛИ

$scope.click = function() {
    setTimeout(function() {
        document.getElementById('input').click()
        $scope.clicked = true;
    }, 0);
};

Ответ 2

Вот как вызвать файл типа "файл" или открыть окно выбора файла, когда вы нажимаете на значок, кнопку или диапазон по своему усмотрению;)

css:

.attachImageForCommentsIcon{
  padding-top: 14px;
  padding-right: 6px;
  outline:none;
  cursor:pointer;
}

HTML:

<input id="myInput" type="file" style="visibility:hidden" ng-file-model=""/>
<i onclick="$('#myInput').click();" class="attachImageForCommentsIcon blue-2 right-position material-icons">image</i>

все кредиты для этого ответа: fooobar.com/info/87444/...

Таким образом, мы настроили тег ввода файла, используя этот способ.