Angular Checkbox Filtering
You're attempting to handle the data binding yourself by creating arrays to store objects based on the click event. Angular does the two way binding for you.  

Basically, I assign a new property named "included" by assigning it as the model to the input checkbox. Then I use that property on the filter of the fruit array to display only the one's whose colour is selected.

&lt;div ng-app="fruit"&gt;
    &lt;div ng-controller="FruitCtrl"&gt;
        &lt;div ng-repeat="f in fruit"&gt;
            &lt;input type='checkbox' ng-model='f.included'&gt;&lt;/input&gt;{{f.colour}}
        &lt;/div&gt;
        &lt;ul&gt;
            &lt;li ng-repeat="f in fruit | filter:{included:true}"&gt;{{f.name}}&lt;/li&gt;
        &lt;/ul&gt;
&lt;/div&gt;


angular.module('fruit', []);

function FruitCtrl($scope) {
    $scope.fruit = [
        {'name': 'Apple', 'colour': 'Red'},
        {'name': 'Orange', 'colour': 'Orange'},
        {'name': 'Banana', 'colour': 'Yellow'}
    ];
}