Skip to content Skip to sidebar Skip to footer

How To Do Ng-repeat With Filter Using Angularjs?

Here I added my code i want to search based on user input i tried this but filter: first_name_model i am not getting proper result for example : Run code Snippet enter '2' and s

Solution 1:

Please change ng-model of input to first_name_model.no It works form me

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app="myApp" ng-controller="namesCtrl">
         filter data <input type = "text" ng-model = "first_name_model.no"/><br><br><br>
         <table>
            <tr>
               <th>Number</th>
               <th>DisplayName</th>
            </tr>

            <tr ng-repeat="student in students | filter: first_name_model">
               <td><input type="text" ng-model ="student.no"></td>

               <td>
                  <select  ng-model="student.userid"  placeholder="Assigned To" name="userid{{$index}}" >
                  <option ng-repeat="user in users | orderBy: 'DisplayName'" ng-value="user._id">
                     {{user.DisplayName}}</md-option>
                     </md-select>
               </td>
            </tr>
         </table>
      </div>

Solution 2:

    angular.module('myApp', []).controller('namesCtrl', function($scope) {
		 
		 $scope.search = function(item) {
    if (!$scope.query || (item.no.toLowerCase().indexOf($scope.query) != -1) || (item.AssignedToDisplayName.toLowerCase().indexOf($scope.query) != -1) ){
        return true;
    }
    return false;
};



    $scope.students = [{
            "firstname": "irfan",
            "lastname": "k",
			"no":"2",
            "userid": "5706b916bb729ecc876192d2"
        },
        {
            "firstname": "asif",
            "lastname": "Y",
			"no":"3",
            "userid": "5706b916bb729ecc87619245"
        },
		
		{
            "firstname": "arun",
            "lastname": "D",
			"no":"6",
            "userid": "5706b916bb729ecd876452d2"
        },
		{
            "firstname": "smart",
            "lastname": "k",
			"no":"5",
            "userid": "5706b916bb729ecc876452d2"
        },
		{
            "firstname": "rajesh",
            "lastname": "v",
			"no":"4",
            "userid": "5706b916bb729ecc87619245"
        }
    ];

    $scope.users = [{
            "_id": "5706b916bb729ecc87619245",
            "DisplayName": "irfan kadhar",
           

        },
        {
            "_id": "5706b916bb729ecc876192d2",
            "DisplayName": "asif yohana",
            

        },
		{
            "_id": "5706b916bb729ecc876452d2",
            "DisplayName": "smar kiran",
            

        },
		{
            "_id": "5706b916bb729ecd876452d2",
            "DisplayName": "arun dinesh ",
            

        }
    ]

    if ($scope.students) {

        for (var i = 0; i < $scope.students.length; i++) {

            for (var j = 0; j < $scope.users.length; j++) {

                if ($scope.students[i].userid == $scope.users[j]._id) {

                    $scope.students[i].AssignedToDisplayName = $scope.users[j].DisplayName;

                }

            }

        }

    }


});
    
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app="myApp" ng-controller="namesCtrl">
         filter data <input type = "text" ng-model = "query"/><br><br><br>
         <table>
            <tr>
               <th>Number</th>
               <th>DisplayName</th>
            </tr>
			
            <tr ng-repeat="student in students | filter:search">
               <td><input type="text" ng-model ="student.no"></td>
			   
               <td>
				<select ng-model="student.userid"  placeholder="Assigned To" name="userid{{$index}}">
				<option ng-repeat="user in users | orderBy: 'DisplayName'" ng-value="user._id">{{user.DisplayName}}</option>
				</select>
                 
               </td>
            </tr>
         </table>
      </div>

Post a Comment for "How To Do Ng-repeat With Filter Using Angularjs?"