2013-02-20 3 views
5

Я пытаюсь получить доступ к $ routeProvider в одном из моих контроллеров, чтобы добавить маршрут. Как это сделать?

function Cont($scope,$routeProvider) { 

}; 

Это не работает для меня; Я получаю: Error: Unknown provider: $routeProviderProvider <- $routeProvider

+3

Это было ранее ответил. Взгляните на http://stackoverflow.com/a/13173667/1620332. – jonc

+0

Возможный дубликат [Как отложить определение маршрутов в Angular.js?] (Http://stackoverflow.com/questions/13153121/how-to-defer-routes-definition-in-angular-js) –

+0

Полезный ответ действительно [Как отложить определение маршрутов в Angular.js] (http://stackoverflow.com/questions/13153121/how-to-defer-routes-definition-in-angular-js), но приятная вещь об этом вопросе вы можете получить здесь с веб-поиском сообщения об ошибке. – metamatt

ответ

6

$ routeProvider и другие провайдеры могут быть введены только в блок конфигурации модулей. Что вы хотите делать с $ routeProvider внутри контроллера?

+0

Было бы неплохо объяснить * почему * провайдеров можно вводить только в блоки конфигурации (я думаю, это объясняется в разделе «Загрузка и зависимость модулей» в руководстве [Руководство разработчиков модулей] (http://docs.angularjs.org/guide/модуль)). – metamatt

1

В контроллере $ route доступен, но $ routeProvider - нет. Может быть, вы можете просто скопировать функцию из, например, 'когда' и 'pathRegExp'

См jsfiddle: http://jsfiddle.net/5FUQa/1/

function addRoute(path, route) { 
    //slightly modified 'when' function in angular-route.js 
    } 
    addRoute('/dynamic', { 
    templateUrl: 'dynamic.tpl.html' 
    }); 

Также смотрите: How to defer routes definition in Angular.js?

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