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

Javascript $setValidity在最终将存在的子元素上,javascript,jquery,angularjs,drag-and-drop,angular-ngmodel,Javascript,Jquery,Angularjs,Drag And Drop,Angular Ngmodel,我可能是走错了路,但我有一个控件,允许在上面删除多个文件以便上传它们。对于每个文件,将显示其文件大小,并显示一个文本框以允许输入文件说明。由于有多个文件,dropzone上的一个文件由其名称、大小和描述文本框(以及任何相关错误)表示 当一个文件被放到dropzone上时,我检查它的文件大小,如果它超过了规定的最大值,则调用$setValidity方法,参数为'maxFileSize'和false。这将设置dropzone的有效性-它的存在就是这样。我还想设置文件的有效性(由控件表示) 这是你的电

我可能是走错了路,但我有一个控件,允许在上面删除多个文件以便上传它们。对于每个文件,将显示其文件大小,并显示一个文本框以允许输入文件说明。由于有多个文件,dropzone上的一个文件由其名称、大小和描述文本框(以及任何相关错误)表示

当一个文件被放到dropzone上时,我检查它的文件大小,如果它超过了规定的最大值,则调用
$setValidity
方法,参数为
'maxFileSize'
和false。这将设置dropzone的有效性-它的存在就是这样。我还想设置文件的有效性(由控件表示)

这是你的电话号码

在指令的控制器中,我监听
fileselected
事件,正文如下所示:

$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);
});
由于仍在处理drop事件,当文件的控制组尚不存在时,该控制组应存在


有人知道我如何解决这个问题吗?

表单[files[cnt].name]
是描述的输入字段。而且,一旦其内容改变,其有效性也随之改变。所以
$scope.form[files[cnt].name]。$setValidity('maxFileSize',fileValid)没有任何意义。你是对的,我想这是我将面临的另一个问题,但就目前而言,假设我将它绑定到另一个无法更改的隐藏字段,我将如何做?你可以将调用包装成。延迟应该是不必要的。感谢您的建议,一定有一些“角度的方法”可以做到这一点,我想我必须等待当前摘要周期完成(???),但我不知道如何在完成后利用它触发$setValidity调用。
$scope.form[files[cnt].name].$setValidity('maxFileSize', fileValid);