Ответ 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
});