我遇到了onchange事件的文件输入问题。 这是我的代码:
Html:
<input type="file" kendo-upload k-options="uploadOptions" id="fileInput" onchange="fileUploaded(event)"/>
Angularjs代码 - 使用Typescript。
$scope.fileUploaded = (event) => {
console.log("Testing file upload");
var reader = new FileReader();
var target = event.target || event.srcElement;
reader.onload = function(e) {
$scope.$apply(function() {
$scope.readFile = reader.result;
});
};
var file = target.files[0];
reader.readAsText(file);
};
我试图遵循这个并相应地改变,但仍然有问题。 Pass angularJS $index into onchange
我这样改变了。
<input type="file" kendo-upload k-options="uploadOptions" id="fileInput" onchange="angular.element(this).scope().fileUploaded(this)">
我收到了这个错误。 未捕获的TypeError:undefined不是函数。 平变化
当我尝试使用ng-change时,我有这个错误。
<div kendo-window="importFile" k-visible="false" k-modal="true" k-title="'Import File'"
k-min-width="450" k-max-width="450"
k-min-height="418" k-max-height="418">
<form kendo-validator="validator" ng-submit="validate($event)">
<li style="padding-bottom: 5px;">
<input type="file" kendo-upload k-options="uploadOptions" id="fileInput" ng-change="fileUploaded($event)"/>
</li>
</form>
</div>
这在访问时会出错 $ scope.importFile.center(); “TypeError:无法读取未定义的属性'center'” 再次,如果我使用ng-click工作正常。
对此的任何帮助都非常感谢。
谢谢!
答案 0 :(得分:2)
在这种情况下,您无法使用ngChange
,因为ngChange
始终需要ngModel
而ngModel
不能与输入类型文件一起使用。此外,您无法使用$scope
直接访问绑定到onchange
的功能。而是使用以下内容:
onchange="angular.element(this).scope().fileUploaded($event)"