1

I'm trying to filter using dropdown and change value dynamically in ng-repeat, not sure how to do it, any hints?

Dropdown:

<label>Status</label>
<select class="form-control" ng-model="currentlySelected">
    <option value="">All</option>
    <option value="inactive">Inactive</option>
    <option value="active">Active</option>
</select>

Filter condition:

filter disable for All results
filter: {deleted_at : ''} --> Inactive results
filter: {deleted_at : null} --> Active results

View:

<tr ng-repeat="user in users">

1 Answer 1

1

You need something like this,

<li ng-repeat="user in users | filter : {status: currentlySelected}: true">

DEMO

angular.module('app', [])
.controller('Main', ['$scope', function($scope) {
  $scope.title = "Filter Based on Select Value";
   $scope.users = [
        {"id":18,"deleted_at" : ''},
        {"id":19,"deleted_at":'null'},
        {"id":21,"deleted_at":''},
        {"id":22,"deleted_at":''},
    ]
}]);
<!DOCTYPE html>
<html ng-app="app">

<head>
  <link rel="stylesheet" href="style.css" />
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
 
</head>

<body ng-controller="Main">
  <h1>{{title}}</h1>
  <label>Status</label>
   <select class="form-control" ng-model="currentlySelected">
      <option value="">All</option>
      <option value="null">Inactive</option>
      <option value="">Active</option>
   </select>

  <li ng-repeat="user in users | filter : {deleted_at: currentlySelected}: true">
    <h3>{{user.id}}</h3>
 </li>
</body>

</html>

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

10 Comments

I need to put conditions for filter as I mentioned in question, like | filter: {deleted_at : ''} how should I do that?
what do you mean
as there is no column as active or inactive in database Im filtering with deleted_at and deleted_at == null
what does those 2 mean inactive and active?
filter: {deleted_at : ''} --> Inactive and filter: {deleted_at : null} --> Active users
|

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.