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

前端之家收集整理的这篇文章主要介绍了javascript – 多次单击时,文件对话框会多次打开AngularJS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我指的是 link,用于使用AngularJS创建文件上传功能.

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

如何解决这个问题?

让我知道.

解决方法

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

Angularjs:

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]);
            });
        });
    }
    }
    }]);

HTML:

<input id="chooseFile" type="file" file-model="file" name="Attachment" multiple/>

希望这会成功.

猜你在找的JavaScript相关文章