2016-07-19 58 views
0

我做了一个代码,将文本框中输入的文本压入数组中,然后单击按钮显示数组。代码如下:检查输入到数组中的新数据是否与angularjs中已输入的任何数据匹配

var app = angular.module("myApp",[]); 


app.controller("myCtrl", function($scope){ 

$scope.ss = []; 

$scope.sa = [ 
     {plate1: 'some plate 1'}, 
     {plate1: 'some plate 2'}, 
     {plate1: 'some plate 3'}, 
     {plate1: 'some plate 5'} 
    ] 
alert($scope.ss.length);  
$scope.getPlate = function(){ 

$scope.ss.push({plate1:$scope.newplate}); 
    //var abb= $scope.ss.push.apply($scope.sa).toString(); 

// var aas = $scope.ss; 

} 

}); 

HTML:

<div ng-controller="myCtrl"> 

    <table> 
     <tr ng-repeat="xx in ss track by $index"> 
      <td>{{xx.plate1}}  </td> 
      <td>   </td> 
     </tr> 
    </table> 

    <input type="text" ng-model="newplate"/> 
    <input type="button" ng-click="getPlate()"/> 


</div> 

现在我需要检查,如果我输入的文本目前已,那么它不应该被推开。请帮助。

+0

要在阵推,独特的数据,你需要比较数据与数组元素 – Ved

+0

@ user3450590推,检查我的请回答.. – developer033

回答

-1

你可以试试这个

app.controller("myCtrl", function($scope){ 
$scope.ss = []; 
var match=[]; 
$scope.getPlate = function(){ 
    if(match.indexOf($scope.newplate) > -1){ 
     match.push($scope.newplate); 
     $scope.ss.push({plate1:$scope.newplate}); 
    } 
} 
}); 
1

使用Array.prototype.some()方法:

$scope.getPlate = function() { 
    var exists = $scope.ss.some(function (value) { 
    return value.plate1 == $scope.newplate; 
    }); 
    if (exists) { 
    // it exists 
    } else { 
    $scope.ss.push({plate1:$scope.newplate}); 
    } 
} 
相关问题