我需要将变量传递给另一个控制器。我有以下与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-click似乎并没有改变我共享属性的值...
更新
我在ng-click触发的函数中放置了一个警报,并且警报应该被触发。
但是,当我这样编写函数时:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
它不起作用...看起来像“ sharedProperties.setListName(name);” 没有执行...
如果我使用虚拟名称(例如Metro)将其放在函数之外,则它可以工作。
更新3
我尝试了多种方法,并且我很确定问题出在此功能上:
$scope.changeListName = function(list_name) {
sharedProperties.setListName(list_name);
};
您知道为什么会这样吗?
ng-ref
和href
,ng-click
被触发,触发我的功能。我更新了答案以更好地反映我的问题。