Angular routeProvider именованные группы не работают?

#angularjs

#angularjs

Вопрос:

Это мой код. Я пытаюсь заставить его соответствовать любому URL-адресу. Если я заменю /*path на /:something/:somethingelse и перейду в /asdf/asdf, это будет работать, но оно вообще не будет соответствовать чему-либо, используя /*path . Все, что я смог найти, указывает на то, что это правильный синтаксис.

Я использую Angular 1.2.18, а также попробовал бета-версию.

Кто-нибудь знает, с чем я могу столкнуться здесь?

РЕДАКТИРОВАТЬ: вот скрипка, показывающая, что она не работает: http://jsfiddle.net/2hYK9 /

 window.MyApp = MyApp = angular.module 'MyApp', ['ngResource', 'ngSanitize', 'ngAnimate', 'ngRoute', 'ngTouch']

MyApp.config ['$locationProvider', ($locationProvider) ->
    $locationProvider.html5Mode true
]

MyApp.config ['$routeProvider',
    ($routeProvider, $routeParams, $location) ->
        $routeProvider.
            when("/*path", {
                templateUrl: (path) ->
                    console.log path
                    return '/pages/asdf.html'
                ,
                controller: 'BrowseController',
                reloadOnSearch: false
            })
]
 

Ответ №1:

Я думаю, что правильный синтаксис :path* .

Из документации angular:

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

Ответ №2:

Что ж, теперь я чувствую себя глупо. Все остальные результаты содержали ссылки на старую версию документов, и то, как это работает, изменилось.

Теперь это правильный синтаксис:

/:путь*