【问题标题】:Force angular.element .on 'change' to call specified function on the same file强制 angular.element .on 'change' 调用同一文件上的指定函数
【发布时间】:2015-09-07 08:03:50
【问题描述】:

当我第一次选择 say hello.png 时,它会加载它并调用 handleFileSelect() 函数。但是,如果我再次选择同一个文件,则在我选择另一个文件名之前不会调用该函数。如何强制它调用该函数?我在想修改将在“更改”上进行,但不确定那会是什么事件。

var handleFileSelect = function(evt) {
  debugger;
  var file = evt.currentTarget.files[0];
  var reader = new FileReader();
  reader.onload = function (evt) {
    $scope.$apply(function($scope){
      $scope.myImage = evt.target.result;
    });
  };
  reader.readAsDataURL(file);
};

angular.element(document.querySelector('#fileInput')).on('change', handleFileSelect);

【问题讨论】:

    标签: angularjs events jquery-selectors document


    【解决方案1】:

    我能想到的最好的方法是用按钮替换文件输入,并在按下按钮时动态创建输入。

    function handleFileSelect(evt) {
      alert('Filename: ' + evt.target.files[0].name);
    }
    
    var button = document.getElementById('select-file');
    button.addEventListener('click', function() {
      var input = document.createElement('input');
      input.type = 'file';
      input.addEventListener('change', handleFileSelect);
      input.click();
    });
    <button id="select-file">Select File</button>

    【讨论】:

    • 到目前为止,这里的代码运行良好。让我在我的真实应用程序中使用该代码,我会回复你的。非常感谢!
    • 是的,确实如此!惊人的!非常感谢! :D
    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2023-03-08
    • 2018-10-11
    • 1970-01-01
    相关资源
    最近更新 更多