2016-07-19 6 views
0

텍스트 상자에 입력 한 텍스트를 배열에 푸시 한 다음 버튼 클릭으로 표시하는 코드를 만들었습니다.배열에 입력 된 새 데이터가 angularjs에 이미 입력 된 데이터와 일치하는지 확인하십시오.

<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> 

지금 내가 입력 한 텍스트가 이미 존재하는 경우, 다음이 추진되지 않아야 함을 확인해야합니다

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 : 같은 코드입니다. Pls 도움.

+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}); 
    } 
} 
관련 문제