2017-02-11 79 views
1

我使用的UI路由器在我的項目,我看到無論是在文件:UI路由器 - 和{塞}之間的區別:蛞蝓

.state('app.restaurants.index', { 
     url: '/{slug}', 
     controller: 'listRestaurantsController', 
     templateUrl: '/app/user/views/restaurants/list.html' 
}) 

.state('app.restaurants.index', { 
     url: '/:slug', 
     controller: 'listRestaurantsController', 
     templateUrl: '/app/user/views/restaurants/list.html' 
}) 

什麼:slug之間的區別和{slug}? 我需要在url中使用可選參數,您對此有何建議?

回答

3

我相信兩者都是一樣的,它只是用「/ {}」格式可以定義要傳遞的參數的類型。

like url: '/{slug:int}'這裏slug是int類型,uirouter將鍵入檢查你的參數。

隨時糾正我,如果我錯了。

2

它們都是相同的,並且服務於相同的目的。

作爲文檔說:(:PARAM/somePath /)

路徑參數是使用大括號佔位符 (/ somepath/{PARAM})或結腸的佔位符定義。

參考:https://ui-router.github.io/ng1/docs/latest/classes/url.urlmatcher.html

花使用括號的好處是,你可以在其中添加正則表達式太像這樣:

的參數正則表達式可以爲PARAM冒號 之後被定義(/ somePath/{param:[a-zA-Z0-9] +})在一個花括號佔位符中。 regexp必須匹配要匹配的網址。如果正則表達式本身 包含花括號,則它們必須匹配或使用 反斜槓進行轉義。