Angular Filter by JSON groups

Angular Filter by JSON groups

by Andrew Pougher

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js"></script>
<div ng-app ng-controller="Test"> 
    <h2>Interest Groups</h2>
    <div class="btn-group" role="group" aria-label="...">
  <button type="button" class="btn btn-default" ng-click="myFilter = {type: 1}">Dentists</button>
  <button type="button" class="btn btn-default" ng-click="myFilter = {type: 2}">RDH</button>
  <button type="button" class="btn btn-default" ng-click="myFilter = {type: 3}">Suppliers</button>
          <button type="button" class="btn btn-default" ng-click="myFilter = onethree">Groups 1 - 3</button>
          <button type="button" class="btn btn-default" ng-click="myFilter = null">No filter</button>
</div>
    
<div class="panel panel-default">
    <div class="panel-body">
    
    <ul class="list-group">
  <li class="list-group-item" ng-repeat="person in persons | filter:myFilter">{{person.name}}</li>

</ul>
    </div></div>

</div>
<script>
	/* http://bit.ly/ARP71 */
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-4809804-1', 'auto');
  ga('send', 'pageview');
  </script>

JavaScript

function Test($scope) {
    $scope.persons = [{
        type: 1,
        name: 'Floss'
    }, {
        type: 2,
        name: 'Dental'
    }, {
        type: 1,
        name: 'Ortho'
    }, {
        type: 3,
        name: 'Oral'
    }];
    $scope.onethree = function (val) {

        return (val.type != 2);
    };
}