JSFiddle - React, Tailwind, and code Playground

by bullrout

HTML

<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
<body ng-app="app">
    <div ng-controller="ctrl">
        <div ng-repeat="serviceName in serviceNames">
            <div class="form-group">
                <label for="cb_{{$index}}">filter all names with {{ serviceName }} in the title</label>
                <input type="checkbox" id="cb_{{$index}}" ng-model="checked" ng-change="filterByName(serviceName, checked)" />
                <br>
                <br>
            </div>
        </div>
        <div class="row col-md-9 col-lg-9 pull-right" data-ng-repeat="item in filteredCollection track by $index">{{ item.address }}</div>
    </div>
</body>

JavaScript

var app = angular.module('app', []);

app.controller("ctrl", ["$scope", function ($scope) {
    $scope.serviceNames = ["bakery", "dispensary", "food hall", "kitchen"];
    $scope.data = {
        "list": [{
            "name": "one",
                "services": [{
                "services": [{
                    "serviceName": "has bakery"
                }, {
                    "serviceName": "has dispensary"
                }]
            }],
                "address": "22 regent st chippendale"
        }, {
            "name": "five",
                "services": [{
                "services": [{
                    "serviceName": "has kitchen"
                }, {
                    "serviceName": "has dispensary"
                }]
            }],
                "address": "23 regent st chippendale"
        }, {
            "name": "two",
                "services": [{
                "services": [{
                    "serviceName": "has bakery"
                }, {
                    "serviceName": "has dispensary"
                }, {
                    "serviceName": "has food hall"
                }, {
                    "serviceName": "has kitchen"
                }]
            }],
                "address": "24 regent st chippendale"
        }, {
            "name": "three",
                "services": [{
                "services": [{
                    "serviceName": "has food hall"
                }, {
                    "serviceName": "has kitchen"
                }]
            }],
                "address": "25 regent st chippendale"
        }]
    }
    $scope.filteredCollection = [];
    var tempObj = {};
    var filteredArray = [];
    var listObj = {};
    $scope.filterByName = function (serviceName, state) {
        if (state) {
            listObj[serviceName] = serviceName
        } else {
            delete listObj[serviceName];
        }
                
        var filteredArray = [];
        angular.forEach($scope.data.list,...