1

I am new in AngularJS. I am able to search the list by text boxes but not able with check-boxes.

Here is my HTML code.

<input id="search_keywords" ng-model="keyword" type="text" value="" placeholder="Keywords" name="search_keywords">
<input id="search_location" ng-model="location" type="text" value="" placeholder="Location" name="search_location">

and also using checkboxes in same form

<input type="checkbox" ng-model="categories[category]"  />Full Time</label>
<input type="checkbox" ng-model="categories[category]"  />Part Time</label>
<input type="checkbox" ng-model="categories[category]"  />Contract</label>
<input type="checkbox" ng-model="categories[category]"  />Freelance</label>

<ul class="job-fillter-listings-wr">
<li class="job-list" ng-repeat="x in searchData | filter : {'keyword' : keyword, 'location' : location, 'categories' : categories } ">
    <a href="">
        <div class="center-wr">
            <div class="all-job-list clearfix">
                <div class="job-title-section">
                    <span class="job-title-"><i class="fa fa-star" aria-hidden="true"></i> | {{ x.keyword }}</span>
                </div>
                <div class="job-location">{{ x.location }}</div>
            </div>
        </div>
    </a>
</li>
</ul> <!--job-fillter-listings-wr-->

Angular JS Code

<script type="text/javascript">
var app = angular.module('myApp', []);
app.controller('arrCtrl', function($scope) {
    $scope.searchData = [
                            {
                                "keyword": "Sr. Front-End Developer",
                                "categories": "Part Time",
                                "location": "Toronto"
                            },
                            {
                                "keyword": "Sr. Developer / Architect",
                                "categories": "Full Time",
                                "location": "Toronto"
                            },
                            {
                                "keyword": "Sr. .NET Developer",
                                "categories": "Contract",
                                "location": "Pickering"
                            },
                            {
                                "keyword": "Business Analyst (Contract)",
                                "categories": "Contract,Freelance",
                                "location": "Pickering"
                            }
                        ]
});
</script>

How can I filter the list by checkbox also?

Thanks

2 Answers 2

1

I made a sample which might help you.

var app = angular.module('myApp', []);
app.controller('arrCtrl', function($scope) {
  $scope.categories = '';
  $scope.category = [];
  $scope.checkeChange = function(checked, val) {
    $scope.categories = '';
    for (var i in $scope.category) {
      if ($scope.category[i]) {
        if ($scope.categories != '')
          $scope.categories += ','
        $scope.categories += $scope.category[i]
      }
    }
  }
  $scope.searchData = [{
    "keyword": "Sr. Front-End Developer",
    "categories": "Part Time",
    "location": "Toronto"
  }, {
    "keyword": "Sr. Developer / Architect",
    "categories": "Full Time",
    "location": "Toronto"
  }, {
    "keyword": "Sr. .NET Developer",
    "categories": "Contract",
    "location": "Pickering"
  }, {
    "keyword": "Business Analyst (Contract)",
    "categories": "Contract,Freelance",
    "location": "Pickering"
  }]
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="myApp">
  <div ng-controller="arrCtrl">
    <input id="search_keywords" ng-model="yourFilter.keyword" type="text" value="" placeholder="Keywords" name="search_keywords">
    <input id="search_location" ng-model="location" type="text" value="" placeholder="Location" name="search_location">
    <input type="checkbox" ng-model="category[0]" ng-true-value="Full Time" ng-change="checkeChange()" />Full Time
    <input type="checkbox" ng-model="category[1]" ng-change="checkeChange()" ng-true-value="Part Time" />Part Time
    <input type="checkbox" ng-model="category[2]" ng-change="checkeChange()" ng-true-value="Contract" />Contract
    <input type="checkbox" ng-model="category[3]" ng-change="checkeChange()" ng-true-value="Freelance" />Freelance
    <h5>Search by - {{categories}}</h5>
    <ul class="job-fillter-listings-wr">
      <li class="job-list" ng-repeat="x in searchData | filter : {'keyword' : keyword, 'location' : location, 'categories' : categories } ">
        <a href="">
          <div class="center-wr">
            <div class="all-job-list clearfix">
              <div class="job-title-section">
                <span class="job-title-"><i class="fa fa-star" aria-hidden="true"></i>{{ x.keyword }}</span>
              </div>
              <div class="job-location">{{ x.location }}</div>
            </div>
          </div>
        </a>
      </li>
    </ul>
    <!--job-fillter-listings-wr-->
  </div>
</body>

Sign up to request clarification or add additional context in comments.

Comments

0

Here the Demo For your question

Here

I think it will help you

1 Comment

but in your reference, each checkbox have different model name

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.