ngRepeat no se actualiza después de cambiar el modelo

Estoy tratando de codificar una pequeña entrada de búsqueda para obtener datos de una base de datos usando ngResource.

los datos se muestran en la página con una repetición ng, pero cuando hago la búsqueda y se actualiza el $ alcance, la vista no se actualiza y muestra datos antiguos.

Aquí está el código:

main.html (vista activa)

<div ng-controller="searchCtrl as searchCtrl" layout="column">
    <form class="form-inline search-form col-md-offset-1">
        <div class="form-group col-md-5">
            <label class="sr-only" for="search_location">Location</label> <input
                id="search_location" type="search" class="form-control"
                ng-Autocomplete ng-model="place" placeholder="Location" />
        </div>
        <div class="form-group col-md-5">
            <label class="sr-only" for="search_tags">Tags</label> <input
                style="width: 100%;" id="search_tags" type="search"
                class="form-control" id="search_tags" placeholder="Tags">
        </div>

        <div class="col-md-1">
            <md-button class="md-fab md-mini" aria-label="Search" ng-click="searchCtrl.search()"> <md-icon class="md-fab-center"
                md-font-icon="glyphicon glyphicon-search" style="color: black;"></md-icon>
            </md-button>
        </div>
    </form>
</div>

<div ng-controller="mainCtrl">

    <div ng-repeat="evento in eventi" ng-include="'views/components/event_card.html'" class="col-md-3"></div>

</div>

main.js

'use strict';
app.factory('Eventi', function($resource) {
    return $resource('/eventsws/events/:location', {location : '@location'}, { 
        search: {
            method: 'GET',
            params: {
                'location' : "@location"
            },
            isArray : true
        }
    })
});

app.controller('mainCtrl', function($scope, Eventi) {
    $scope.eventi = Eventi.query();
});

searchbar.js

'use strict';
app.controller('searchCtrl', function($scope, Eventi) {
    $scope.place = null;

    this.search = function() {

        $scope.eventi = Eventi.search({
            'location' : $scope.place
        });
    }
});

cuando se inicia, obtiene todos los datos de la base de datos y los muestra correctamente, cuando intento realizar una búsqueda, el $ scope.eventi se actualiza (puedo ver los nuevos datos en $ scope.eventi desde la depuración) pero la vista aún muestra los datos antiguos y nunca los actualiza.

Intenté usar $ scope. $ Apply al final de la función de búsqueda, pero el resultado es el mismo.

¿Tienes alguna idea de por qué no funciona?

Gracias por tu tiempo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta