Javascript 检查angularjs中动态字段的模糊事件上的重复字段值

Javascript 检查angularjs中动态字段的模糊事件上的重复字段值,javascript,angularjs,Javascript,Angularjs,添加汽车名称加载新的输入文本,输入值为空 输入重复的汽车名称将根据列表进行验证。但是,我面临的问题是ng模型每次都会得到更新的值/输入的值,在模糊时它会过滤/搜索相同的值并抛出错误 演示: HTML: 这是因为ngmodel的数据正在实时更新。 在筛选时,您需要确保它不会考虑当前值。 因此,您可以在checkDuplicateName函数中尝试以下操作 $scope.checkDuplicateName=函数(名称、currentIndex、carList){ 控制台日志(carList);

添加汽车名称加载新的输入文本,输入值为空

输入重复的汽车名称将根据列表进行验证。但是,我面临的问题是ng模型每次都会得到更新的值/输入的值,在模糊时它会过滤/搜索相同的值并抛出错误

演示:

HTML:


这是因为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;
        }
      }