Angular ng-click con llamada a una función de controlador no funciona

Necesito pasar una variable a otro controlador. Tengo el siguiente código que está relacionado con el ListCtrl:

<a href="#items" data-router="article" ng-click="changeListName('metro')">

El enlace va a otro controlador, ItemCtrl.

Quiero pasar una variable al ItemCtrl. Pensé en usar un servicio llamado SharedProperties:

service('sharedProperties', function () {
    var list_name = '';

    return {
        getListName: function() {
            return list_name;
        },
        setListName: function(name) {
            list_name = name;
        }
    };
});

Cuando se hace clic en el enlace, llamo a un evento de clic angular para activar la siguiente función:

$scope.changeListName = function(name) {
    sharedProperties.setListName(name);
};

Sin embargo, el clic de ng no parece cambiar el valor de mi propiedad compartida ...

ACTUALIZAR

Pongo una alerta dentro de la función activada por ng-click y la alerta se activa, como debería ser.

Sin embargo, cuando escribo mi función así:

$scope.changeListName = function(name) {
    sharedProperties.setListName(name);
};

No funciona ... se parece a 'sharedProperties.setListName (name);' no se ejecuta ...

Si lo pongo fuera de la función con un nombre ficticio (por ejemplo, metro), funciona ...

ACTUALIZACIÓN 3

Intenté varias cosas y estoy bastante seguro de que el problema está en esta función:

$scope.changeListName = function(list_name) {
    sharedProperties.setListName(list_name);
};

¿Tienes alguna idea de por qué esto está sucediendo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta