我制作了一个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();
});
}
}
});
当我点击并选择一个文件时,一切正常。但是,当我再次选择文件时,不会触发该事件。它只在我选择另一个文件时被触发。为什么会这样?
答案 0 :(得分:2)
更改是侦听值而不是文件。
你需要这样做:
evt.target.value = "";
祝你好运:)