AngularJS filter array with checkboxes
<p>I have an AngularJS search filter, with a search box.
I'd like to add in checkbox filtering, via a function or pure AngularJS.
The checkboxes should filter the array called cat(short for category).</p>

<p><strong>My data sits in an array called cat( short for category).
A product can have multiple categories, for example:</strong></p>

<pre><code>product_A.cat: [ 'Continuing Education', 'Scientific Session']
</code></pre>

<p><strong>My junior developer tried creating a filter function for each checkbox.
But I want to move a way from that.</strong></p>

<pre><code>&lt;h4 class="blue-title"&gt;Filter by category:&lt;/h4&gt;
                    &lt;div class="navbar"&gt;

                        &lt;div class="navbar-header"&gt;
                            &lt;button class="navbar-toggle btn btn-block" id="filtercategories"
                                type="button" data-toggle="collapse"
                                data-target=".searchbar-collapse"&gt;
                                &lt;span class="fa fa-filter"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;Categories
                            &lt;/button&gt;
                        &lt;/div&gt;

                        &lt;div class="collapse navbar-collapse searchbar-collapse"&gt;
                            &lt;button type="button" class="btn btn-default btn-block"
                                style="margin: 7px 0;" ng-click="resetFilters()"&gt;RESET
                                FILTERS&lt;/button&gt;
                        &lt;/div&gt;

                        &lt;div class="collapse navbar-collapse searchbar-collapse"&gt;
                            &lt;h5 style="font-weight: bold;"&gt;FREE&lt;/h5&gt;
                            &lt;div ng-repeat="FREEcategory in FREE"&gt;
                                &lt;input type="checkbox" ng-model="FREEcategory.on"
                                    ng-change="FREEcheckChange()"&gt; {{FREEcategory.name}}
                            &lt;/div&gt;
                        &lt;/div&gt;

                        &lt;div class="collapse navbar-collapse searchbar-collapse"&gt;
                            &lt;h5 style="font-weight: bold;"&gt;CONTINUING EDUCATION&lt;/h5&gt;
                            &lt;div ng-repeat="CEcategory in CE"&gt;
                                &lt;input type="checkbox" ng-model="CEcategory.on"&gt; {{CEcategory.name}}
                            &lt;/div&gt;
                        &lt;/div&gt;

                        &lt;div class="collapse navbar-collapse searchbar-collapse"&gt;
                            &lt;h5 style="font-weight: bold;"&gt;BEST OF ATS CONFERENCE&lt;/h5&gt;
                            &lt;div ng-repeat="BATScategory in BATS"&gt;
                                &lt;input type="checkbox" ng-model="BATScategory.on"
                                    ng-change="BATScheckChange()"&gt; {{BATScategory.name}}
                            &lt;/div&gt;
                        &lt;/div&gt;

                        &lt;div class="collapse navbar-collapse searchbar-collapse"&gt;
                            &lt;h5 style="font-weight: bold;"&gt;APCCMPD&lt;/h5&gt;
                            &lt;div ng-repeat="APCCMPDcategory in APCCMPD"&gt;
                                &lt;input type="checkbox" ng-model="APCCMPDcategory.on"
                                    ng-change="APCCMPDcheckChange()"&gt;
                                {{APCCMPDcategory.name}}
                            &lt;/div&gt;
                        &lt;/div&gt;


                        &lt;div class="collapse navbar-collapse searchbar-collapse"&gt;
                            &lt;h5 style="font-weight: bold;"&gt;YEAR&lt;/h5&gt;
                            &lt;div ng-repeat="YEARcategory in YEAR"&gt;
                                &lt;input type="checkbox" ng-model="YEARcategory.on"
                                    ng-change="YEARcheckChange()"&gt; {{YEARcategory.name}}
                            &lt;/div&gt;
                        &lt;/div&gt;
</code></pre>