#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*
.
путь может содержать именованные группы, начинающиеся с двоеточия и заканчивающиеся звездочкой: например:name* . Все символы с нетерпением сохраняются в $routeParams под заданным именем, когда маршрут совпадает.
Ответ №2:
Что ж, теперь я чувствую себя глупо. Все остальные результаты содержали ссылки на старую версию документов, и то, как это работает, изменилось.
Теперь это правильный синтаксис:
/:путь*