2014-09-25 35 views
0

我有以下角度路線:角可選命名組

  $routeProvider.when('/sites/:var1/:var?/something/:year?/:month?/', { 
       templateUrl: 'path-to-template.html, 
       controller: 'PageController' 
      }); 

      $locationProvider.html5Mode(true); 

的問題是,當我打的路線http://www.somesite.com/sites/category/something/2014/10/角度嘗試匹配可選的命名組,並最終轉換地址爲 http://www.somesite.com/sites/category/%3F/something/2014%3F/10%3F/並將我重定向到該路徑。

有沒有人知道爲什麼可選路徑將被/?/(encoded:%3F)替換?

任何幫助,非常感謝。謝謝

編輯

會發生什麼是角是路由器替換URL來正是你的。當提供,在/方面匹配嗎? (不知道還有什麼)。所以,如果它發現一條路線匹配。當然,但是失去了/或?它只是附加它並刷新(角刷新),然後顯然url編碼它。 (???:o)

+0

你能發佈你的代碼嗎? – 2014-09-26 00:20:57

回答

0

我已經縮小到最後的斜線。使用:

'/sites/:var1/:var?/something/:year?/:month?/' 

連同:

http://www.somesite.com/sites/category/something/2014/10/ 

正確解析,如不除去這兩個斜線。 實際上,將任何可選的命名組添加到url會導致路由依賴於斜線。 至於爲什麼這種情況正在發生......

+0

如果我從工作路線中刪除尾部斜線。但那不是問題,因爲如果我這樣做,反過來會有問題。我想知道的是,爲什麼沒有可選命名組的路由,即'/ something/something'(帶有或不帶尾部斜線)可以以任何方式工作,但不能使用可選命名組的路由? – user3638565 2014-09-26 12:43:01