Javascript 使用angularjs返回时如何传递参数
当我向后导航时,angularjs正在重新使用上一个视图的控制器Javascript 使用angularjs返回时如何传递参数,javascript,angularjs,Javascript,Angularjs,当我向后导航时,angularjs正在重新使用上一个视图的控制器 $window.history.back(); 我想在重新加载上一个视图时调用刷新(在某些情况下)。在“返回”前一个控制器时,如何将参数传递给前一个控制器?还是有更好的方法可以使用angularjs向后导航 通过查询字符串参数可以轻松地向前传递参数 通过创建自定义服务,然后将该服务注入到您想要的任何控制器中,可以轻松地在控制器之间传递数据 下面是一个快速而肮脏的示例,它获取/设置服务中控制器的状态数据,目标是在控制器的多个实例化
$window.history.back();
我想在重新加载上一个视图时调用刷新(在某些情况下)。在“返回”前一个控制器时,如何将参数传递给前一个控制器?还是有更好的方法可以使用angularjs向后导航
通过查询字符串参数可以轻松地向前传递参数 通过创建自定义服务,然后将该服务注入到您想要的任何控制器中,可以轻松地在控制器之间传递数据 下面是一个快速而肮脏的示例,它获取/设置服务中控制器的状态数据,目标是在控制器的多个实例化之间持久化数据 控制器:
var list;
list = angular.module('app.list', ['services.controller_state']);
list.controller('ListCtrl', [
'$scope', 'ControllerState', function($scope, ControllerState) {
var savedParams;
savedParams = ControllerState.getParams();
savedParams.data1 = "changed";
return ControllerState.setParams(savedParams);
}
]);
服务:
var module;
module = angular.module("services.controller_state", []);
module.factory("ControllerState", function() {
var params;
params = {
data1: "foo",
data2: "bar",
data3: "zig",
data4: "zag"
};
return {
getParams: function() {
return params;
},
setParams: function(prms) {
var item, _results;
_results = [];
for (item in prms) {
_results.push(params[item] = prms[item]);
}
return _results;
}
};
});
如果JavaScript看起来很时髦,那是因为我主要编写CoffeeScript并使用转换器。谢谢,这是一个不错的选择。我仍然在想,我可能遗漏了一个更简单的答案,更具体地说,它与向后导航的主题有关,考虑到控制器/作用域对在您离开时被破坏(再见数据),并且向后功能使用历史记录中存储的URL(没有新的查询参数),使用服务可能是您唯一的选择。除非你能通过编辑URL历史记录和修改存储的查询参数来实现某种魔力。我不知道有什么办法可以做到这一点。好的,这很有趣。在我的例子中,当我导航离开时,控制器并没有被破坏,但我正在使用ngView并加载部分。当我返回时,上一个控制器实例正在被重新使用。有没有办法强制它实例化一个新的控制器?