Я ищу способ добавить IOC
в мое приложение angularjs
.IOC in AngularJS (1.x) - Как я могу достичь?
Мое приложение - это приложение с несколькими арендаторами, и мне нужно использовать разные услуги для разных арендаторов с тем же регистрационным именем.
Я также использую TypeScript
, и он хорошо работает с использованием конкретных типов по интерфейсам.
Моя основная проблема заключается в том, как я могу решить, как зарегистрировать правильный сервис для моего приложения.
Это пример:
var app = angular.module('app',[]);
// common registrations
app.service('commonService1', commonServiceFunction1);
app.service('commonService2', commonServiceFunction2);
app.service('commonService3', commonServiceFunction3);
app.service('commonService4', commonServiceFunction4);
// here I want to register the same service name with a different implementation
app.service('serviceName', serviceOneFunction); // sometimes I will need this service
app.service('serviceName', serviceTwoFunction); // sometimes I will need this service
Вещи, которые я думал:
Добавьте логику и скачать правильные JS файлов в источник - имена функций останутся неизменными, и мне нужно будет выяснить способ предоставления правильного js-файла, который включает в себя правильные функции.
Переопределить регистрацию (например, зарегистрировать общую службу, а затем переопределить регистрацию с конкретной реализацией).
Оба решения уродливые и не масштабируемые для меня.
Я хотел бы иметь контейнер IOC или какое-либо другое решение, которое будет немного более приятным и масштабируемым.
Какие критерии используются для определения того, какой сервис вам нужен? Должны ли быть определены службы для каждого приложения или вам нужно динамически их менять? –
Услуги необходимо будет изменить в конфигурации. Поскольку я хочу зарегистрировать правильный сервис в своем приложении, я не буду изменять эту регистрацию во время использования моего приложения. –