Мне нужно передать переменную другому контроллеру. У меня есть следующий код, который связан с ListCtrl:
<a href="#items" data-router="article" ng-click="changeListName('metro')">
Ссылка идет на другой контроллер, ItemCtrl.
Я хочу передать переменную в ItemCtrl. Я думал об использовании сервиса под названием SharedProperties:
service('sharedProperties', function () {
var list_name = '';
return {
getListName: function() {
return list_name;
},
setListName: function(name) {
list_name = name;
}
};
});
При щелчке ссылки я вызываю событие angular click, чтобы вызвать следующую функцию:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Однако, ng-click, похоже, не меняет значение моего общего свойства...
UPDATE
Я помещаю предупреждение внутри функции, вызванной ng-click, и запускается предупреждение, как и должно быть.
Однако, когда я пишу свою функцию следующим образом:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Он не работает... он выглядит как 'sharedProperties.setListName(name);' не выполняется...
Если я поставлю его вне функции с фиктивным именем (например, метро), он будет работать.
ОБНОВЛЕНИЕ 3
Я попробовал несколько вещей, и я уверен, что проблема в этой функции:
$scope.changeListName = function(list_name) {
sharedProperties.setListName(list_name);
};
У вас есть идея, почему это происходит?