Угловые модули на основе условий

0

Есть ли способ загрузить/указать модули на основе условий внутри контроллера?

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
}]);
  • 0
    Что именно вы подразумеваете под load modules ?
  • 0
    @charlietfl Я имею в виду указание модулей для приложений, таких как ngRoute. Здесь приложение использует ngRoute, и я просто хочу добавить еще один модуль в приложение на основе условия в контроллере
Показать ещё 1 комментарий
Теги:
angularjs-module

2 ответа

1

Нет прямого способа сделать это в " Угловом готовом", однако вы можете рассмотреть возможность использования модуля ocLazyLoad.

Пример, приведенный на странице со ссылками, показывает, как вы могли бы использовать его для своего случая:

myApp.controller("MyCtrl", function($ocLazyLoad) {
    $ocLazyLoad.load('testModule.js');
});
0

К сожалению, НЕТ, по крайней мере, из коробки с простой Джейн Угловая. Вы не можете загрузить больше модулей в другой модуль после того, как этот модуль будет определен. Что вам нужно сделать, так это переместить логику, чтобы условно загрузить модуль при определении вашего модуля.

Другой вариант - использовать инструмент ocLazyLoad https://github.com/ocombe/ocLazyLoad для ленивой загрузки ваших модулей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню