2014-10-01 72 views
1

我有一個簡單的設置在我的配置()Angularjs UI-路由器狀態PARAMS不工作

$stateProvider 
     .state('app', { 
      'url': '/app', 
      'abstract': true, 
      'templateUrl': 'views/layout/index.html', 
      'controller': 'App' 
     }) 

     .state('app.home', { 
      'url': '/home', 
      'views': { 
      'appContent': { 
       'templateUrl': 'views/home/index.html', 
       'controller': 'Home' 
      } 
      } 
     }); 
     .state('app.asd', { 
      'url': '/asd/:idContact?', 
      'views': { 
      'appContent': { 
       'templateUrl': 'views/asd/index.html', 
       'controller': 'Asd' 
      } 
      } 
     }); 
$urlRouterProvider.otherwise('/app/home'); 

如果我瀏覽如果我再瀏覽app/asd它重定向我

我想知道如何app/asd/7一切正常我可以使idContact參數不是必需的嗎?我用了經典的$ routeProvider sintax它:(

+0

幸運的猜測:「app/asd /」是否帶有尾部斜線工作? – jevgenig 2014-10-01 09:26:23

+0

@jevgenig我在控制檯中得到這個錯誤**由於: 錯誤:模式'/ app/asd /:idContact?'中無效的參數名稱'**不能理解它有什麼問題 – sbaaaang 2014-10-01 09:27:24

+0

「 :varName的「?語法似乎不受stateProvider支持,但是routerProvider。嘗試使用正則表達式格式:'/ asd [/ I:idContact]' – jevgenig 2014-10-01 09:32:51

回答

1

嘗試:

/asd/{idContact:/?.*}

據我知道,就是讓參數UI路由器可選的解決方法,我不知道是否有。已經任何最近建成的這個實現在UI路由器。

+0

是啊謝謝我想要自殺,謝謝:D – sbaaaang 2014-10-01 09:45:05

1

只是想提供一些例子給答案可選參數的問題。檢查所有在working example

這個問答& A不解釋更多的細節:

下面是兩種狀態定義一個片段:

.state('view', { 
    url: '/view/:inboxId', 
    templateUrl: 'tpl.view.html', 
    controller: 'viewCtrl' 
}). 

state('view_root', { 
    url: '/view', 
    templateUrl: 'tpl.view.html', 
    controller: 'viewCtrl' 
}) 

這裏有一些方法如何創建鏈接(hrefui-sref)達到這些狀態:

// href 
<a href="#/view/1">/view/1</a> - id is passed<br /> 
<a href="#/view/"> /view/ </a> - is is missing - OPTIONAL like <br /> 
<a href="#/view"> /view </a> - url matching the view_root 

// ui-sref 
<a ui-sref="view({inboxId:2})"> - id is passed<br /> 
<a ui-sref="view">     - is is missing - OPTIONAL like 
<a ui-sref="view({inboxId:null})"> - id is explicit NULL <br /> 
<a ui-sref="view_root()">   - url matching the view_root 

這應該表明,我們不必傳遞一些參數,只需確保正確的URL被調用(尾隨/

+0

讚賞謝謝 – sbaaaang 2014-10-08 16:36:19

+0

偉大的,如果這可以幫助無論如何;) – 2014-10-08 16:36:37

+0

肯定謝謝你! – sbaaaang 2014-10-08 16:37:16