Мені потрібно передати змінну іншому контролеру. У мене є такий код, який пов’язаний із 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;
}
};
});
Коли клацне посилання, я викликаю подію кутового клацання, щоб викликати наступну функцію:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Однак натискання ng, схоже, не змінює значення мого спільного ресурсу ...
ОНОВЛЕННЯ
Я поміщаю попередження всередину функції, яка запускається клацанням ng, і сповіщення спрацьовує, як і має бути.
Однак, коли я пишу свою функцію так:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Це не працює ... схоже на 'sharedProperties.setListName (name);' не виконується ...
Якщо я поміщу його поза функцією з фіктивним іменем (наприклад, метро), це працює ..
ОНОВЛЕННЯ 3
Я спробував кілька речей, і я впевнений, що проблема полягає в цій функції:
$scope.changeListName = function(list_name) {
sharedProperties.setListName(list_name);
};
Ви уявляєте, чому це відбувається?
ng-refіhref,ng-clickспрацьовує і запускає мою функцію. Я оновив свою відповідь, щоб краще відображати свою проблему.