4

我正在研究货币转换器,我有类似 的 url #/currency/50/USD/to/EUR,其中 50、USD 和 EUR 是参数。现在我有一个 switch 函数,它可以交换货币并保持要转换的值,我也想将 URL 更改为类似#/currency/50/EUR/to/USD不重新加载控制器的东西,只需更改哈希值。我对如何使用纯 js 有一个想法,但是有没有角度的解决方案?

4

2 回答 2

13

检查这个答案。这听起来就像你需要的。

基本上,您似乎有两种选择:

  1. 监听$locationChangeSuccess事件。
  2. 在您的$routeProvider定义中,在定义要加载的路由和相应的模板时,指定 option reloadOnSearch = 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 回答