Подтвердить что ты не робот

Почему я не могу получить $location, введенное в мой config()?

Почему это дает мне ошибку:

angular.module('app')
       .config(function($routeProvider, $locationProvider, $httpProvider, $location) {

Неиспользуемая ошибка: неизвестный поставщик: $location from app

Но этой линии нет?

angular.module("app")
       .factory("SomeResource", 
               function($q, $resource, $http, $location, AuthenticationService, Base64) {

Это то же приложение. Может ли config получать только провайдеров и factory получать только провайдеров?

4b9b3361

Ответ 1

В конфигурационные блоки могут быть введены только поставщики и константы.

Из документации по углам по конфигурационным блокам

  • Блоки конфигурации - выполняются во время регистрации и конфигурации поставщика. В конфигурационные блоки могут быть введены только поставщики и константы. Это делается для предотвращения случайного создания служб, прежде чем они будут полностью настроены.

  • Запускать блоки - выполняться после создания инжектора и использоваться для запуска приложения. Только экземпляры и константы могут быть введены в блоки запуска. Это необходимо для предотвращения дальнейшей конфигурации системы во время выполнения приложения.

По сути, блок конфигурации - это то, где вы настраиваете поставщиков, прежде чем они будут введены в контроллер, службы, фабрики и т.д.

angular.module('myModule', []).
 config(function(injectables) { // provider-injector
   // This is an example of config block.
   // You can have as many of these as you want.
   // You can only inject Providers (not instances)
   // into the config blocks.
 }).
 run(function(injectables) { // instance-injector
   // This is an example of a run block.
   // You can have as many of these as you want.
   // You can only inject instances (not Providers)
   // into the run blocks
 });

Ответ 2

есть два способа уровня кода для ввода кода:

1) config. Этот метод будет выполняться до создания инжекторов и принимает только поставщиков и константы для инъекций

2) run. Этот метод будет работать во время фазы инициализации приложения и принимает только экземпляры и константы (например, $location).

factoryservice, controller и directive) - это функции, которые являются частью вашего приложения. Таким образом, они тоже могут принимать только экземпляры (или одиночные числа) и константы.