不触发ng-change(与指令一起使用)

时间:2017-08-23 13:41:02

标签: javascript jquery html angularjs angularjs-ng-change

我有以下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);
    }

};

0 个答案:

没有答案