【问题标题】:Angular modules based on conditions基于条件的角度模块
【发布时间】:2015-09-25 15:25:51
【问题描述】:

有没有办法根据控制器内部的条件加载/指定模块?

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
}]);

【问题讨论】:

  • load modules 到底是什么意思?
  • @charlietfl 我的意思是为 ngRoute 等应用程序指定模块。在这里,应用程序使用 ngRoute,我只想根据控制器中的条件向应用程序添加一个模块
  • 需要第三方惰性加载器,如 ocLazyLoad。在v1.xx angular 中还没有内置任何内容

标签: javascript angularjs angularjs-module


【解决方案1】:

在开箱即用的 Angular 中没有直接的方法可以做到这一点,但是您可以考虑使用 ocLazyLoad module

链接页面上给出的示例显示了如何将它用于您的案例:

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

【讨论】:

    【解决方案2】:

    不幸的是,不,至少与普通的 Jane Angular 开箱即用。定义该模块后,您无法将更多模块加载到另一个模块中。您需要做的是在定义模块时移动逻辑以有条件地加载模块。

    另一个选项是使用 ocLazyLoad https://github.com/ocombe/ocLazyLoad 工具延迟加载您的模块。

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2020-09-23
      • 2020-08-25
      • 1970-01-01
      • 2020-10-20
      • 2015-06-19
      相关资源
      最近更新 更多