Список модулей с поддержкой должны быть предусмотрены для главного модуля:
var enabledModules = [...];
angular.module('app', ['thirdParty', 'app.common'].concat(enabledModules));
Очевидно, enabledModules
массив не может нормально загружаться с $http
, потому что приложение не бутстрапированная в этой точке. Для его определения можно использовать шаблоны XHR или сервера.
В качестве альтернативы отдельное приложение может использоваться для загрузки необходимых компонентов. Благодаря использованию DI, он может быть тщательно протестирован.
angular.module('app', ['thirdParty', 'app.common']);
angular.module('appInitializer', [])
.factory('loader', ($http) => {
return $http.get('enabled-modules').then((result) => result.data);
})
.factory('initializer', (loader, $document) => {
return loader.then((enabledModules) => {
$document.ready(() => {
angular.bootstrap($document.find('body'), ['app'].concat(enabledModules));
});
});
});
angular.injector(['ng', 'appInitializer'])
.get('initializer')
.catch((err) => console.error(err));
Спасибо, я думаю, что я должен создать страницу входа на стороне сервера, который будет проходить проверку подлинности пользователя и на основании того, что я буду создавать Dyanamic index.html и app.js, который имеет соответствующие зависимостей применения в соответствии для пользователя. –
Это может быть просто динамический html для удобства с '