当多次单击AngularJS时,文件对话框会多次打开

Sha*_*ank 8 html javascript angularjs

我指的是使用AngularJS创建文件上传功能的链接.

当我单击" 选择文件 "时,不止一次,当对话框未打开时,甚至一次,在选择文件后,当对话框第一次打开时,我仍然可以看到多个对话框一个接一个地开放.

如何解决这个问题?

让我知道.

Ang*_*ala 0

这是因为您在按钮中使用了ng-model 。您必须编写自己的自定义指令,而不是ng-model。对于文件输入,避免使用按钮。更好的方法是使用文件输入标签,如下所示:

角js:

    myApp.directive('fileModel', ['$parse', function ($parse) { 
    return {
    restrict: 'A',
    link: function (scope, element, attrs) {
        var model = $parse(attrs.fileModel);
        var modelSetter = model.assign;
        element.bind('change', function () {
            scope.$apply(function () {
                modelSetter(scope, element[0].files[0]);
            });
        });
    }
    }
    }]);
Run Code Online (Sandbox Code Playgroud)

HTML:

    <input id="chooseFile" type="file" file-model="file" name="Attachment" multiple/>
Run Code Online (Sandbox Code Playgroud)

希望这能成功。