Javascript 检查angularjs中动态字段的模糊事件上的重复字段值
添加汽车名称加载新的输入文本,输入值为空 输入重复的汽车名称将根据列表进行验证。但是,我面临的问题是ng模型每次都会得到更新的值/输入的值,在模糊时它会过滤/搜索相同的值并抛出错误 演示: HTML:Javascript 检查angularjs中动态字段的模糊事件上的重复字段值,javascript,angularjs,Javascript,Angularjs,添加汽车名称加载新的输入文本,输入值为空 输入重复的汽车名称将根据列表进行验证。但是,我面临的问题是ng模型每次都会得到更新的值/输入的值,在模糊时它会过滤/搜索相同的值并抛出错误 演示: HTML: 这是因为ngmodel的数据正在实时更新。 在筛选时,您需要确保它不会考虑当前值。 因此,您可以在checkDuplicateName函数中尝试以下操作 $scope.checkDuplicateName=函数(名称、currentIndex、carList){ 控制台日志(carList);
这是因为ngmodel的数据正在实时更新。 在筛选时,您需要确保它不会考虑当前值。 因此,您可以在checkDuplicateName函数中尝试以下操作
$scope.checkDuplicateName=函数(名称、currentIndex、carList){
控制台日志(carList);
console.log(名称);
if(carList.filter((cl,index)=>currentIndex!==index&&cl.name==name.length){
$scope.cars.isDuplicate=true;
$scope.cars.list[index]={name:''};
//$timeout(函数(){
//$scope.myFrom。['carName'+索引]。$setValidity($invalid),true);
// });
}否则{
$scope.cars.isDuplicate=false;
}
}
使用索引并检查currentIndex!==索引
<ul ng-repeat="cl in cars.list">
<li>
<input name="carName{{$index}}" type="text", ng-model="cl.name", ng-blur="checkDuplicateName(cl.name, $index, cars.list)"/>
<small style="color:red" ng-show="cars.isDuplicate">Duplicate Car Name</small>
</li>
</ul>
$scope.checkDuplicateName = function(name,index, carList){
console.log(carList);
console.log(name);
if (carList.filter((cl) => cl.name === name).length) {
$scope.cars.isDuplicate = true;
// $timeout(function () {
// $scope.myFrom.['carName' + index].$setValidity("$invalid",true);
// });
}else{
$scope.cars.isDuplicate = false;
}
}