gpt4 book ai didi

javascript - 在 Controller 中使用 $setValidity

转载 作者:IT王子 更新时间:2023-10-29 02:48:52 25 4
gpt4 key购买 nike

我正在尝试对文件更改进行一些验证。这是我的代码:

View /模板

<input type="file" name="file" id="file"  
onchange="angular.element(this).scope().setFile(this)"
required />

<span class="error" ng-show="myForm.file.$error.required">Error</span>
<span class="error" ng-show="myForm.file.$error.size">Selected file is too large</span>
<span class="error" ng-show="myForm.file.$error.filetype">Unsupported File type</span>

Controller

angular.module("myapp").controller("myctrl", function($scope) {
$scope.setFile = function(element) {
$scope.$apply(function($scope) {
var fileObject = element.files[0];
$scope.file.fileType =
fileObject.type.toUpperCase().substring(fileObject.type.indexOf("/") + 1);

// Validation
if (!$scope.isValidFileType($scope.file.fileType)) {
myForm.file.$setValidity("myForm.file.$error.filetype", false);
}

if (fileObject.size > 1000*1000*10) {
myForm.file.$setValidity("myForm.file.$error.size", false);
}
});
};

$scope.isValidFileType = function(fileExtension) {
var supportedExtensions = ["doc", "docx", "ppt", "pptx", "jpg", "gif", "png"]; // etc.
return (jQuery.inArray(fileExtension, supportedExtensions) > -1);
}
});

但是现在对 $setValidity 的调用不起作用。
有什么想法吗?

最佳答案

这一行:

myForm.file.$setValidity("myForm.file.$error.size", false);

应该是

$scope.myForm.file.$setValidity("size", false);

关于javascript - 在 Controller 中使用 $setValidity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com