Angular如何捕获$ routeProvider中的特定URL

时间:2015-06-16 10:21:13

标签: javascript angularjs

我要捕获的网址是

http://test.sample.com/?code=4/CAKREYsOD89sg7eXahK93Pw7pnMb5ndkiCrzSUlMS1U

我需要在$ routeProvider中捕获上面的url。 我的代码是。

$routeProvider.when('/:code/',{
                    template: '',
                    controller: function ($location,$rootScope) {
                        console.log("I got you. .. ");
                    }
                })
                .otherwise({
                    redirectTo: '/login'
                });

我的问题是我无法在何时捕获此网址。

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

使用$routeParam

$routeProvider.when('/:code/',{
                template: '',
                controller: function ($location,$rootScope) {
                   var urlCopied=$location.path(); // get the current path                     
                }
            })
            .otherwise({
                redirectTo: '/login'
            });

希望有所帮助

答案 1 :(得分:0)

你可以试试这个

// given url http://example.com/#/some/path?foo=bar&baz=xoxo var absUrl = $location.absUrl(); // => "http://example.com/#/some/path?foo=bar&baz=xoxo"

来自Angular js $location

答案 2 :(得分:0)

有两种方法可以满足您的需求:

  1. 如果您想捕获特殊参数,请不要将其放在查询参数中。使用这样的网址:

    http://test.sample.com/#/code/CAKREYsOD89sg7eXahK93Pw7pnMb5ndkiCrzSUlMS1U

  2. 并且像这样抓住它:

    $routeProvider.when('/code/codeID',{
                    template: '',
                    controller: function ($routeParams) {
                        console.log($routeParams.codeID);
                    }
                })
                .otherwise({
                    redirectTo: '/login'
                });
    
    1. 如果您想使用查询参数,可以这样做:

      $routeProvider.when('/',{
              template: '',
              controller: function ($location) {
                 var queryParams = $location.search();
                 console.log(queryParams.code);                   
              }
          })
          .otherwise({
              redirectTo: '/login'
          });
      
    2. 并使用此网址:

      http://test.sample.com/?code=4/CAKREYsOD89sg7eXahK93Pw7pnMb5ndkiCrzSUlMS1U
      

      我希望这段代码可以帮到你!