最终将存在的子元素上的$ setValidity

时间:2015-01-09 14:41:11

标签: javascript jquery angularjs drag-and-drop angular-ngmodel

我可能会以错误的方式解决这个问题,但我有一个控件,允许在其上删除多个文件以便上传它们。对于每个文件,将显示其文件大小,并显示一个文本框以允许输入文件的描述。由于它是多个文件,dropzone上的一个文件由其名称,大小和描述文本框(以及任何相关错误)表示。

当在dropzone上删除文件时,我检查它的文件大小,如果它超过规定的最大值,则使用参数$setValidity和false调用'maxFileSize'方法。这设置了dropzone的有效性 - 它存在,所以没关系。我还想设置文件的有效性(由控件表示)。

这是plunker link

在指令的控制器中,我会听取filesSelected事件,此处显示正文:

$scope.$on('filesSelected', function(event, args) {
    var filesValid = true, files = args.files;
    for (var cnt = 0; cnt < files.length; cnt++) {
        var fileValid = files[cnt].size <= $scope.maxFileSize;
        if (!fileValid) {
            filesValid = false;
        }
        $scope.form[files[cnt].name].$setValidity('maxFileSize', fileValid);
    }
    ngModel.$setValidity('maxFileSize', filesValid);
});

基本上,行:

$scope.form[files[cnt].name].$setValidity('maxFileSize', fileValid);

当文件的控制组存在时,因为它仍在处理drop事件,因此尚不存在。

有没有人有任何想法我可以解决这个问题?

0 个答案:

没有答案