指令中的输入文件更改侦听器不会更新范围变量[已附加plunker]

Muthukannan Kanniappan

我有一个包含文件输入的指令。在更改文件输入时,我尝试更新一些作用域变量,但不会更新它。当注释超时超时为未注释范围时,将更新范围变量。

我的印象是angular.element .on函数可以安全地应用(触发摘要)。我不确定为什么还要在这里花$ timeout来工作,有人可以阐明这种行为吗?

问题在下面的缩略语中转载。https://plnkr.co/edit/dHRInri9i21bR0gxe8q1?p=preview

app.directive('fileInput', function($timeout) {
  var directive;

  directive = {
    restrict: 'E',
    templateUrl: 'fileinput.html',
    link: function(scope, element) {
      element
        .find('input')
        .on('change', function(e) {
          console.log(e);
          scope.fileName = 'file name--->' + e.target.files[0].name;
          /*$timeout(function(){
            scope.fileSize = 'fileSize--->' + e.target.files[0].size;
          });*/
        });
    }
  };

  return directive;
});

指令模板:

<input type="file" id="fileUpload" accept="image/*" />
<br>
{{fileName}}
<hr>
{{fileSize}}
加拉

element.on正在使用jqLit​​e或Jquery。因此,scope.$apply在这种情况下使用有效,因为element.onAngularJs不知道

朋克:https ://plnkr.co/edit/hohU97QmjASwat139sEV ? p = preview

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章