将输入值与AngularJS中的数组值进行比较

时间:2015-07-09 14:48:53

标签: javascript angularjs angularjs-scope angularjs-service angularjs-validation

我对现有值的验证存在问题。我不知道如何比较两个值并仅在数据库中不存在时添加新值。我已尝试使用angular.forEach(),但它总是在比较(我正在使用angular.equals())时添加新对象并非虚假且错误。该对象必须只是数据库中的一次。

这是我的创建功能:

$scope.createItem = function (createItem) {
   //here I have to define a query to compare createItem.lname with the table list (array items from the db) in the view.

   //That was the code:
   angular.forEach(nameslist, function (value) {
     if (angular.equals(createItem.lname, value.lname)) {
           CrudService.create(createItem).then(
              function () {
                //success code
                $scope.createItem = null;
              },
              function (err) {
               //error code
              });
           }
     }
   });
} 

任何人都可以给我一些帮助..我不知道如何解决它。

1 个答案:

答案 0 :(得分:0)

var itemAbsent = namelist.map(function(value){
   return value.name;
}).indexOf(createItem.name) < 0;

if (nameAbsent){
   CrudService.create(createItem).then(
          function () {
            //success code
            $scope.createItem = null;
          },
          function (err) {
           //error code
          });
       }
}