我有以下HTML代码
<input type="file" ng-model="Import" file-reader="fileContent" ng-change="getList();"/>
如上所示,我正在尝试加载文本文件并在ng-change上获取内容。
这是指令&#39; fileReader&#39;
ngUtilityMod.directive('fileReader', function () {
return {
scope: {
fileReader: "="
},
link: function (scope, element) {
$(element).on('change', function (changeEvent) {
var r = new FileReader();
var CSVfile;
var checkCSV = changeEvent.target.files[0].name;
checkCSV = checkCSV.slice(-4);
if (checkCSV === '.csv') {
CSVfile = true;
}
else { CSVfile = false; }
if (changeEvent.target.files[0].type === 'text/plain' || CSVfile === true) {
var files = changeEvent.target.files;
if (files.length) {
r.onload = function (e) {
var contents = e.target.result;
scope.$apply(function () {
scope.fileReader = contents;
});
};
r.readAsText(files[0]);
}
}
else {
'data';
}
});
}
};
});
当触发ng-change时,我应该能够达到以下功能。这里的问题是ng-change根本没有被触发。如果我使用ng-click或任何其他angularjs事件,它就能够检测到。有人可以让我知道为什么我无法触发ng-change
$scope.getList = function () {
$scope.getImport = function (fileContent) {
} // function to load CSV data during import feature.
if (angular.isDefined($scope.fileContent)) {
$scope.Import = $scope.fileContent;
console.log($scope.params);
}
};