我正在使用货币转换器,我的网址为#/currency/50/USD/to/EUR
,其中50,USD和EUR是参数。现在我有一个交换功能,交换货币并保持转换价值,我想在不重新加载控制器的情况下将URL更改为#/currency/50/EUR/to/USD
,只需更改哈希。我对如何处理纯js有一个想法,但有角度方式有解决方案吗?
答案 0 :(得分:13)
检查此answer。听起来就像你需要的一样。
基本上,您似乎有两种选择:
$locationChangeSuccess
事件。$routeProvider
定义中,在定义路由和相应的模板加载时,请指定选项reloadOnSearch = false
。 答案 1 :(得分:7)
好的关于callmekatootie解决方案,这是我的结果,我必须添加一个条件,以便能够在需要时离开我的控制器
controller('CurrencyConvertCtrl', function ($scope, $route){
var lastRoute = $route.current;
$scope.$on('$locationChangeSuccess', function(event) {
if($route.current.$$route.controller === 'CurrencyConvertCtrl'){
// Will not load only if my view use the same controller
$route.current = lastRoute;
}
});
}