我正在研究货币转换器,我有类似 的 url #/currency/50/USD/to/EUR
,其中 50、USD 和 EUR 是参数。现在我有一个 switch 函数,它可以交换货币并保持要转换的值,我也想将 URL 更改为类似#/currency/50/EUR/to/USD
不重新加载控制器的东西,只需更改哈希值。我对如何使用纯 js 有一个想法,但是有没有角度的解决方案?
问问题
13353 次
2 回答
13
检查这个答案。这听起来就像你需要的。
基本上,您似乎有两种选择:
- 监听
$locationChangeSuccess
事件。 - 在您的
$routeProvider
定义中,在定义要加载的路由和相应的模板时,指定 optionreloadOnSearch = false
。
于 2013-08-29T08:56:55.190 回答
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;
}
});
}
于 2013-08-29T09:51:24.260 回答