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?