Как мне получить доступ к $locationProvider для его настройки?

Каков правильный способ получения параметров конфигурации $locationProvider из службы/контроллера? При выполнении простой инъекции зависимостей с function ( $locationProvider ) я получаю следующую ошибку:

Unknown Provider : $locationProviderProvider <- $locationProvider <- myCtrl

Ответ 1

Я также получил эту ошибку.

Вам разрешено вводить $location в контроллер, но не $locationProvider.

Вместо этого $locationProvider можно ввести в метод config:

var app = angular.module("myApp", []);

app.config(function($locationProvider) {
  $locationProvider.html5Mode(true);
});

app.controller("myCtrl", function($location) {
  $location.path("/some/path");
});

И так как я сделал эту дополнительную ошибку: это не просто то, что вы должны добавить бит app.config, но также не забудьте удалить $locationProvider из аргументов контроллера, или вы будете продолжать получать эту ошибку.

Если я правильно понимаю, конфигурация поставщика происходит на этапе конфигурации жизненного цикла приложения, в отличие от фазы запуска. Таким образом, это разделение. Здесь вы можете прочитать немного больше об этих этапах.

Я подозреваю, что причиной сообщения об ошибке является то, что при вводе $foo в контроллер он ищет $fooProvider. Таким образом, когда мы ввели a $locationProvider, он искал $locationProviderProvider.