я могу получить доступ к $ controllerProvider, но не может получить доступ к $ контроллера в следующем методе
angular.module(MODULE_NAME, ['common'])
.config(['$routeProvider','$controllerProvider',
function($routeProvider, $controllerProvider) {
console.log($controllerProvider);//defined
console.log($controller);//undefined
}]);
Если я использую $ контроллер как инъекции зависимостей, он дает
Unknown provider: $controller
Но Мне нужно, чтобы получить доступ к нему, как я могу это сделать
EDIT
Мне нужно это, потому что я хочу проверить, что мой контроллер существует. Вот post откуда я использую этот код
try {
$controller(controllerName);
listControlerName = MODULE_NAME+'ListController';
} catch (error) {
listControlerName = 'CommonListController';
}
КОНТЕКСТ
Я создаю архитектуру проекта. Моя структура проекта следующая.
- У меня есть один ОБЩИЙ модуль. с ListController, EditController, ViewController
- У меня есть некоторые другие модули, такие как MOD1, MOD2 и т. д. с MOD1ListController, MOD1EditController, MOD1ViewController и так далее.
- Эти контроллеры, специфичные для модуля, расширяют соответствующий контроллер от общего модуля.
Теперь мой план, а новый модуль (MODX) должен быть разработан, а затем, если есть некоторые дополнительные функции, то только разработчик создаст новый MODXListController для этого модуля по наследованию общей ListController. В противном случае им не нужно ничего создавать.
Таким образом, система проверит, содержит ли этот модуль MODXListController или нет. Если нет, система будет использовать Common ListController.
Я не хочу создавать MODXListController, который наследует обычный ListController, но не делает никаких дополнительных изменений. Потому что у меня много модулей почти 25, и все они в основном используют одну и ту же функциональность.
вы не можете получить доступ к '$ controller' из своей конфигурации. –
Укажите, почему именно неизвестно, существует ли контроллер. Есть лучшие способы делать то, что вы пытаетесь сделать, конечно, не так. – estus
@estus Я обновил контекст. –