ng-repeat with filter not updating

I'm building an ionic app. I have a state where the user can see all of their posts. Each post has many fields, one of which is 'active' - boolean field.

I'm rendering the list by:

<ion-item ng-repeat="post in posts | filter:{active:true}" ng-click="goToPost(post.id)" 
          class="item item-thumbnail-left">
  <some fields here />
</ion-item>

Then the user has an option to deactivate a post.

<ion-option-button class="button-assertive" ng-click="deactivate(post.id, $index)">
  DEACTIVATE
</ion-option-button>

This option makes a request to the backend, and also it locally sets the active field of the post into "false". After the deactivation is complete, I can't get the ng-repeat to re-filter the list - since the current post should no longer appear in the list of active posts.

I tried $scope.$apply() and it threw the $digest error... I tried to add ng-change and ng-model, and that didn't work either. I also tried reloading the state completely, but for some reason, I can't get this done. Can anyone help me? Thanks in advance!

Look at the fiddle

<div ng-app="app" ng-controller="demoController">
    <ion-item ng-repeat="post in data | filter:{activated:true}" ng-click="deativate(post.id)">
        {{post.col1}}  {{post.activated }} {{"click Me"}} </br>
</ion-item>
</div>


var app= angular.module("app",[]);
app.controller('demoController', ['$scope', 
  function($scope) {
    $scope.data = [
        {id:1,col1:"abc",activated:true},
        {id:2,col1:"abc1",activated:true},
        {id:3,col1:"abc2",activated:true},
        {id:4,col1:"abc3",activated:true},
        {id:5,col1:"abc4",activated:false},
        {id:6,col1:"abc5",activated:true},
            ];

      $scope.deativate = function(id){

        angular.forEach($scope.data,function(item){
            if(item.id === id){
                item.activated = false;
            }
        })
      }

}]);

and for your code you can share your code snippet.