JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<div ng-app="testApp" ng-controller="testC">
    <ul>
        <li class="row" ng-repeat="f in filterTypes"><a href="#" ng-click="toggleTag(f);">{{f}}</a>               </li>
    </ul>
    <ul>
        <li ng-repeat="item in (items|ngRepeatFinish) | selectedFilters:filters" >
            <span>name: {{item.name}}</span>
            <span>country: {{item.country}}</span>
        </li>
    </ul>    
</div>

CSS

.row {
    display: inline-block;
    padding: 0 15px;
}

JavaScript

angular.module('testApp', [])
    .filter('ngRepeatFinish', function($timeout){
        return function(data){
            var me = this;
            var flagProperty = '__finishedRendering__';
            if(!data[flagProperty]){
                Object.defineProperty(
                    data, 
                    flagProperty, 
                    {enumerable:false, configurable:true, writable: false, value:{}});
                $timeout(function(){
                        delete data[flagProperty];                        
                        me.$emit('ngRepeatFinished');
                    },0,false);
            }
            return data;
        };
    })
    .filter('selectedFilters', function(){
         return function(items, filters) {
            return items.filter(function(item) {
                for (var i in item.country) {
                    if (filters.indexOf(item.country) != -1) {
                        return true;
                    }
                }
                return false;
            });
        };
    })
    .controller('testC', function($scope){        
        $scope.$on('ngRepeatFinished', function(){
           alert('Finished Rendering!');
        });
        $scope.filterTypes = ['UK', 'USA', 'Switzerland'];
        $scope.filters = ['UK'];
        $scope.items = [{name: 'David', country: 'UK', featured: true},
                     {name: 'Brad', country: 'USA', featured: false},
                     {name: 'Schmidt', country: 'Switzerland', featured: true}];  
        $scope.toggleTag = function(tag){
            var tags = $scope.filters;
            if(!_.contains(tags, tag)){
                tags.push(tag);
            }else{
                removeType(tags, tag);
            }
        }
        function removeType(arr, type) {
            for (var i=arr.length - 1; i >=0; i--) {
                if ( arr[i] === type ) {
                    arr.splice(i,1);
                }
            }
            return arr;
   ...