gpt4 book ai didi

javascript - 表格 $setValidity 回到 true 不工作

转载 作者:行者123 更新时间:2023-12-01 14:37:31 24 4
gpt4 key购买 nike

我设置了一个表单来验证服务器端的 OnBlur 事件。服务器端验证工作正常并按预期返回错误。但是,一旦我将某个字段的有效性设置为 false,将其设置回 true 并不会删除 $error 消息。 $setValidity true 不是应该从表单中删除错误吗?

这是 Controller :

angular.module('artists').controller('ArtistsController', ['$scope', '$stateParams', '$location', 'Authentication', 'Artists',
function($scope, $stateParams, $location, Authentication, Artists) {
$scope.authentication = Authentication;

$scope.processForm = function(val){

var artist = new Artists({
name: $scope.artistForm.name.$viewValue,
quote: $scope.artistForm.quote.$viewValue
});
artist.$save(function(response) {
$scope.artistForm.$setValidity(val,true);
}, function(errorResponse) {
if(val in errorResponse.data){
$scope.artistForm.$setValidity(val,false,errorResponse.data[val].message);
}else{
$scope.artistForm.$setValidity(val,true);
}
});

};
}]);

最佳答案

在我的例子中,字段设置回正常,但是当我编辑它时。发生这种情况是因为 $scope 是从不同的 Controller 加载的并且未应用。因此,你需要使用$apply

$scope.$apply(function(){
$scope.artistForm.$setValidity(val,true);
})

这是文档: https://docs.angularjs.org/api/ng/type/ $rootScope.作用域

关于javascript - 表格 $setValidity 回到 true 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806037/

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