AngularJS动态ng模式不工作
我在通过ng模式验证表格时遇到问题。ng模式验证取决于另一个下拉菜单。在下拉菜单中,我有两个值A和B。对于每个值,我有不同的模式进行验证。现在,我面临的问题是,我能够根据值调用模式,但即使我根据模式输入正确的信息,它仍然显示无效。有关更多详细信息,请查找以下代码以了解更多详细信息 HTML表单AngularJS动态ng模式不工作,angularjs,validation,ng-pattern,Angularjs,Validation,Ng Pattern,我在通过ng模式验证表格时遇到问题。ng模式验证取决于另一个下拉菜单。在下拉菜单中,我有两个值A和B。对于每个值,我有不同的模式进行验证。现在,我面临的问题是,我能够根据值调用模式,但即使我根据模式输入正确的信息,它仍然显示无效。有关更多详细信息,请查找以下代码以了解更多详细信息 HTML表单 $scope.vendors=[ { “名称”:“A” }, { “名称”:“B” } ]; $scope.setVendorName=函数(){ //警报($scope.vendorName.nam
$scope.vendors=[
{
“名称”:“A”
},
{
“名称”:“B”
}
];
$scope.setVendorName=函数(){
//警报($scope.vendorName.name);
localStorageService.set(“vendorName”,$scope.vendorName.name);
$scope.vendor=localStorageService.get(“vendorName”);
$scope.seatPattern=功能(奥迪){
如果(audi.name==“A”){
返回“/^[a-fA-F]+[1-6]{1}/”;
}否则{
返回“/^[a-cA-C]+[1-8]{1}/”;
}
}
}
-
选择奥迪
请选择一个选项
-
请输入您的座位号
请输入座位号字母数字(A1)
这样做。去掉seatPattern
函数。改用范围变量
$scope.vendors = [{"name":"A"},{"name":"B"}];
$scope.seatPattern = /^[a-cA-C]+[1-8]{1}/;
$scope.setVendorName = function(){
if($scope.vendorName.name== 'A')
{ $scope.seatPattern = /^[a-fA-F]+[1-6]{1}/; }
else
{ $scope.seatPattern = /^[a-cA-C]+[1-8]{1}/; }
localStorageService.set("vendorName",$scope.vendorName.name);
$scope.vendor = localStorageService.get("vendorName");
}
-
选择奥迪
请选择一个选项
-
请输入您的座位号
请输入座位号字母数字(A1)
问题出在您的座椅模式
功能中
您返回的是字符串,而不是正则表达式。删除引号,它会很好地工作
$scope.seatPattern = function(audi){
if(audi.name == 'A'){
return /^[a-fA-F]+[1-6]{1}/;
}else{
return /^[a-cA-C]+[1-8]{1}/;
}
}
您好,我尝试删除引号,但如果达到以下错误10$digest()迭代次数,则无效。流产!在最后5次迭代中触发的观察器:当应用程序的模型变得不稳定,并且每个$digest周期触发状态更改和随后的$digest周期时,就会发生此错误。Angular检测到这种情况,并防止无限循环导致浏览器无响应。根据错误代码,当我尝试检查问题时,如果没有引号,seatPattern函数将执行无限次,但不确定原因。我尝试使用scope变量,并按预期工作。谢谢