Интересно, как лучше всего настроить маршрут, который предназначен только для использования служебного вызова, а затем для перенаправления.Как запустить код на маршруте, который имеет доступ к службам
настоящее время я использую этот хак:
$routeProvider.when('/talks', {
template: '<div></div>',
controller: ['dateService', '$location', function(dateService, $location){
var nextTalk = dateService.getNextTalkDate();
$location.path('talks/' + nextTalk.format('MM') + '/' + nextTalk.format('YYYY'));
}]
});
В настоящее время я установить конфигурацию реализации контроллера инлайн, который имеет зависимость от услуг controller
, а затем делает это дело и переадресовывает.
Однако, это немного странно, так как я должен установить template
в какое-то фиктивное значение, потому что иначе контроллер вообще не будет вызываться.
Чувствую, что я подчеркиваю свойство controller
для чего-то, для чего он не предназначался.
Я предполагаю, что должен быть способ запустить некоторый вид несвязанного кода, который имеет доступ к службам на маршруте. Я мог бы исправить свой собственный $routeProvider
. Думаю, но это кажется немного тяжелым для того, что я бы счел нужным встроить.
А, да, это звучит как жизнеспособное решение :) Спасибо – Christoph
Mmmh ... кажется, нет возможности сделать параметры необязательными: http: // stackoverflow.com/a/12807157/288703 поэтому, если вы просто нажмете '/ talk', он не поймает маршрут – Christoph
Хорошо, вы можете отсортировать необязательные параметры при определении нескольких маршрутов, указывающих на один и тот же контроллер. – Christoph