У меня есть угловой модуль, который предназначен для автономной работы. Что приложение-потребитель может добавить директивы с параметром URL-адреса и будет использовать этот URL-адрес в качестве общего источника данных при взаимодействии с виджетом. У этого есть общий LoadService, который использует $http для загрузки данных и ожидает, что определенный формат JSON запустит виджет.
Ну, прямо сейчас я пытаюсь провести рефакторинг, чтобы кто-то также мог создать собственный сервис загрузки и внедрить его в модуль, но если он не внедрен, он будет использовать загрузку данных по умолчанию. Итак, я пытаюсь понять, как я могу создать способ внедрения CustomLoadService, если он определен приложением, которое использует модуль. Однако он не должен выдавать ошибку, если пользовательская служба не определена, она должна просто использовать службу по умолчанию.
Я изучал $injector.get
и видел в этом возможность, но у меня возникли проблемы с внедрением $injector
в контроллер. Я думал, что это будет так же просто, как $location
ввести. Что-то типа...
angular
.module('Widget')
.controller('WidgetController',[
'$scope',
'WidgetLoadService',
'$injector',
WidgetController
]);
Этот метод, похоже, не работает, поэтому мне интересно... Каков наилучший самый "угловой способ" решения этой проблемы. Как мне использовать $injector.