1

Here i have enclosed my fiddle .fiddle contains list of student and one search box is there.i want to make search only based Center_name and Address.user input matches in that two fields(Center_name , Address).for example user entered G(g) i need to check in that Center_name or Address if it matched i need to show detail.please some one help me out how to make search with this Center_name and Address.if nothing is matched i need to show no result found for your search http://jsfiddle.net/U3pVM/18286/

angular.module('myApp', [])
    .controller("myCntrl", function ($scope) {

    var data = [{

        Name: "Ashok",
        Center_name:"Global Idea Solutions",
  Address:"Majestic, Bangalore",
        Ext_courses: "Java,Php",
        Subjects: "Tamil,English,Maths,Science,Commerce",
        Email: "ashok@gmail.com",
    }, {
        Name: "Sekar",
        Center_name:"VIT Software Training Institute",
  Address:"BTM 3rd Stage, Bangalore",
        Ext_courses: "Java,Php",
        Subjects: "English,Science,Tamil",
        Email: "sekar@gmail.com",
    }, {
        Name: "Mohan",
        Center_name:"Techpark Computer Education",
  Address:"JP Nagar, Bangalore",
        Ext_courses: "Java",
        Subjects: "Maths,English,Tamil",
        Email: "mohan@gmail.com",
    }, {
        Name: "Ramesh",
        Center_name:"Vijay Software Training Institute",
  Address:"Banashankari 3rd stage, Bangalore",
        Ext_courses: "Php",
        Subjects: "Commerce,Computer",
        Email: "ramesh@gmail.com",
    }, {
        Name: "Suresh",
        Center_name:"Global Idea Solution",
  Address:"Banashankari 2nd stage, Bangalore",
        Ext_courses: "Php",
        Subjects: "Computer,Tamil",
        Email: "suresh@gmail.com",
    }, {
        Name: "Ajith",
        Center_name:"Global Idea Solution",
  Address:"JP Nagar 5th stage, Bangalore",
        Ext_courses: "Java",
        Subjects: "Tamil,Science",
        Email: "ajith@gmail.com",
    }

    ]

    var searchcourse = 'Java';
    var searchsubject = 'Computer,Commerce';
    //var searchsubject='Tamil,English';
    $scope.tests = [];
    for (var i = 0; i < data.length; i++) {
        var studentcourse = data[i].Ext_courses.split(',');
        var studentsubject = data[i].Subjects.split(',');
        for (var j = 0; j < studentcourse.length; j++) {
            for (var k = 0; k < studentsubject.length; k++) {
                if (studentcourse[j] === searchcourse || studentsubject[k] === searchsubject) {
                    if ($scope.tests.indexOf(data[i]) == -1){
                        $scope.tests.push(data[i]);
                    }
                }

            }

        }


    }


    console.log(data);
})
<div ng-app="myApp">
  
    <div ng-controller="myCntrl">
             <label>List Of students</label><br>
    <input ng-model="search" type="text" placeholder="find student" /><br><br><br><br><br>
            <div ng-repeat="test in tests | filter:search" style="border-radius:5px;background: #8AC007;padding: 20px;">
                {{test.Center_name}}  <br>
     {{test.Address}}  <br>
                 {{test.Name}}  <br>
     {{test.Email}} <br><br><br><br>
             </div>
    
        </div><BR><BR>
 </div>

2 Answers2

0

Use a custom function for search:

$scope.search = function (row) {
    var query = angular.lowercase($scope.query);
    return (angular.lowercase(row.brand).indexOf($scope.query || '') !== -1 || angular.lowercase(row.model).indexOf($scope.query || '') !== -1);
};

http://jsfiddle.net/dk6rejrL/2/

Take a loot at : Filtering by Multiple Specific Model Properties in AngularJS (in OR relationship)

Community
  • 1
  • 1
Lancelot HARDEL
  • 401
  • 2
  • 7
0

//creating the module ,controller and registering with the module all done in one line
//Use the method chaining mechnism as show below:
var myApp = angular.module('myModule', []).controller("myController",function($scope){
 var employees = [
   {
    firstname:"Pramod Kharade",
    city:"Baramati",
    gender:"Male",
    salary:45000
   },
   {
    firstname:"Ganesh Kadam",
    city:"Hanumanbet",
    gender:"Male",
    salary:65000
   },
   {
    firstname:"Malayka",
    city:"Pune",
    gender:"female",
    salary:50000
   }
  ];
  
 $scope.employees = employees;
 $scope.search = function(item){
  if($scope.searchText == undefined){
   return true;
  }else{
   if(item.firstname.toLowerCase().indexOf($scope.searchText.toLowerCase()) !=-1 || item.city.toLowerCase().indexOf($scope.searchText.toLowerCase()) !=-1){
    return true;
   }
  }
  return false;
 }
 
});
table{
 border-collapse: collapse;
 font-family: Arial;
}
td{
 border: 1px solid black;
 padding: 5px;
}
th{
 border:1px solid black;
 padding: 5px;
 text-align: left;
}
.arrow-up{
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 10px solid black;
display: inline-block;
}
.arrow-down{
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 10px solid black;
display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<!DOCTYPE html>
<html>
<head>
 <title>Angularjs-Filter by multiple properties </title>
 
 <script type="text/javascript" src="script.js"></script>
 <link rel="stylesheet" href="style.css">
</head>
<body >
<p> How to filter by Multiple Properties?<br>
 Multiple Search textboxes.Each textbox searching a specific property<br>
  
</p>
<div ng-app="myModule">
 <div ng-controller="myController">
 <input type="text" placeholder="Search name & city" ng-model="searchText">
 <p>Search name & city in same searchbox</p>
 <br>
 <table border="1">
  <thead><tr><th >Name </th>
  <th>City</th>
  <th >Gender</th>
  <th >Salary</th>
  
  </tr></thead>
  <tbody>
   <tr ng-repeat="employee in employees | filter:search">
    <td>{{employee.firstname}}</td>
    <td>{{employee.city}}</td>
    <td>{{employee.gender}}</td>
    <td>{{employee.salary}}</td>
   </tr>

  </tbody>
 </table>
 
</div>

</div>

</body>
</html>
Pramod Kharade
  • 2,005
  • 1
  • 22
  • 41