我需要将变量传递给另一个控制器。我有以下与 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);
};
你知道为什么会这样吗?