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