Есть ли способ загрузить/указать модули на основе условий внутри контроллера?
var app = angular.module('app',['ngRoute']);
app.controller("DemoCtrl",["$scope",function($scope){
var a = true;
if(a)
// Load "Yes" module to app
else
// Load "No" module to app
}]);
Нет прямого способа сделать это в " Угловом готовом", однако вы можете рассмотреть возможность использования модуля ocLazyLoad.
Пример, приведенный на странице со ссылками, показывает, как вы могли бы использовать его для своего случая:
myApp.controller("MyCtrl", function($ocLazyLoad) {
$ocLazyLoad.load('testModule.js');
});
К сожалению, НЕТ, по крайней мере, из коробки с простой Джейн Угловая. Вы не можете загрузить больше модулей в другой модуль после того, как этот модуль будет определен. Что вам нужно сделать, так это переместить логику, чтобы условно загрузить модуль при определении вашего модуля.
Другой вариант - использовать инструмент ocLazyLoad https://github.com/ocombe/ocLazyLoad для ленивой загрузки ваших модулей.
load modules
?