AngularJS文件输入onchange事件到controllerAs

时间:2017-01-22 19:46:23

标签: javascript angularjs

我有以下代码:

<input onchange="angular.element(this).scope().filesChanged(this)" fileInput="controlFormCtrl.formData.episodeFile">

选择的文件将传递到范围,并且可以通过以下方式在我的控制器中访问:

  var thisScope = this;
  var rootScope = $root;
  var ctrlScope = $scope;
  ctrlScope.filesChanged = function(elm) {
    thisScope.file = elm.files[0];
  }

elm.files有以下数据:

lastModified: 1485109128000
lastModifiedDate: Sun Jan 22 2017 19:18:48 GMT+0100 (CET)
name:"border-image.png"
size:1353
type:"image/png"
webkitRelativePath:""
__proto__: File

但是thisScope.file未设置。

我该怎么做才能解决问题?

1 个答案:

答案 0 :(得分:1)

您需要运行ctrlScope.$apply();让角度知道thisScope已更改,但是,这只应在FileReader加载文件后运行。

我建议使用ngf-select指令来处理文件上传。

https://github.com/danialfarid/ng-file-upload