2013-09-04 2 views
4
расслоения плотной

Я пытаюсь сделать символ (*) маршрутизацией в угловых JS через следующий фрагмент кода:

$routeProvider.when('/something/:action/:id/:params*\/', { 

    templateUrl : "/js/angular/views/sample/index.html", 

    controller : 'SampleCtrl' 

}).otherwise({ 

    redirectTo: '/something/all' //This exists in real code 

}); 

образца путь:/#/something/details/201/1

При вызове этого URL-адреса он выполняет иначе. Что я здесь делаю неправильно? Заранее спасибо

+1

Названный группы (дикие карты *) поддерживаются версии 1.2 и наборы. Я пытался использовать 1.0.4 –

ответ

6

The $routeProvider не поддерживает стандартное регулярное выражение, но он поддерживает названные группы:

  • путь может содержать именованные группы, начинающиеся с двоеточия (: название). Все символы до следующего коса совпадают и сохраняются в $ routeParams под заданным именем, когда маршрут совпадает.

  • Путь может содержать именованные группы, начинающиеся со звезды (* имя). Все символы охотно хранятся в $ routeParams под заданным именем, когда маршрут совпадает.

Таким образом, вы должны попробовать

$routeProvider.when('/something/:action/:id/:params/*rest'

который будет соответствовать /#/something/details/201/1/whatever/you/say

+0

Будет ли это соответствовать '/ #/something/details/201/1 /' и '/ #/something/details/201/1'? У меня есть модуль под названием «Активы» и хотел бы, чтобы он ответил на что-то вроде '/ #/public/assets' -'/#/user /: id/assets' - и просто '/ #/assets'. Будет ли '/ # */assets' соответствовать этим И я смогу получить': id' как routeParam? – Cody

+0

Какой ': id' параметр вы говорите, если в вашем маршруте нет идентификационного параметра'/# */assets'? Боюсь, вам придется определять отдельные маршруты, если вы хотите соответствовать одному конкретному параметру. –

0

вы можете использовать

$routeProvider.when('/something/:action/:id/:params?, 
+0

Не могли бы вы дать объяснение этому ответу? Благодаря! – meetar

+0

работает, если параметр существует или нет. поэтому он будет работать с/something /: action /: id /: params или/something /: action /: id/ – Chris

+0

Кодовые ответы не поощряются и могут привести к удалению флагов - включая объяснение или комментарий в ваших ответах помогать людям учиться и делать ваши ответы более заметными в поисковых системах! – meetar

Смежные вопросы