HTML文件输入Angularjs选择相同的文件仅触发一个

时间:2015-05-12 12:06:48

标签: javascript html angularjs

我制作了一个Angular指令来扭曲文件上传输入。

directive('ngFile', function () {
    return {
        link: function (scope, element, attrs) {
            var button = element.find('button[data-fileInputButton]');
            var inputElement = element.find('input[type="file"]');        

            var updateModel = function (evt) {
                scope.$apply(function () {
                    scope.files = evt.target.files;
                    if (scope.startUpload) {
                        scope.startUpload();
                    }

                    evtl.target.files = [];
                });
            }

            inputElement.bind('change', updateModel);

            button.click(function () {
                var input = element.find('input[type="file"]');
                input.click();
            });
        }
    } 
});

当我点击并选择一个文件时,一切正常。但是,当我再次选择文件时,不会触发该事件。它只在我选择另一个文件时被触发。为什么会这样?

1 个答案:

答案 0 :(得分:2)

更改是侦听值而不是文件。

你需要这样做:

evt.target.value = "";
祝你好运:)