我需要将一个变量传递给另一个控制器.我有以下与ListCtrl相关的代码:
<a href="#items" data-router="article" ng-click="changeListName('metro')">
Run Code Online (Sandbox Code Playgroud)
该链接将转到另一个控制器ItemCtrl.
我想将一个变量传递给ItemCtrl.我想过使用一个名为SharedProperties的服务:
service('sharedProperties', function () {
var list_name = '';
return {
getListName: function() {
return list_name;
},
setListName: function(name) {
list_name = name;
}
};
});
Run Code Online (Sandbox Code Playgroud)
单击链接时,我调用角度单击事件来触发以下功能:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Run Code Online (Sandbox Code Playgroud)
但是,ng-click似乎不会更改我的共享属性的值...
UPDATE
我在由ng-click触发的函数内部发出一个警报,并触发警报,因为它应该是.
但是,当我写这样的函数时:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Run Code Online (Sandbox Code Playgroud)
它不起作用......它看起来像'sharedProperties.setListName(name);' 没有执行......
如果我把它放在具有虚拟名称的函数之外(例如,地铁),它可以工作..
更新3
我尝试了很多东西,我很有信心问题是这个功能:
$scope.changeListName = function(list_name) {
sharedProperties.setListName(list_name);
};
Run Code Online (Sandbox Code Playgroud)
你知道为什么会这样吗?
angularjs ×1