有条件地注入角度模块依赖性

时间:2015-04-14 01:52:45

标签: angularjs

我是角色的新手并拥有以下代码。

angular.module('MyApp')
    .controller('loginController', ['$scope', '$http', 'conditionalDependency',
        function ($scope, $http, conditionalDependency{
}

我希望有条件地加载 conditionalDependency 。像这样的东西

if(true)
{
//add conditionalDependency
}

如何做到这一点。我见过this post。但是,我的要求是我具有功能

中指定的依赖关系

提前致谢。

3 个答案:

答案 0 :(得分:15)

不清楚为什么你 将包含在你的例子中的命名函数中但是......

如果您需要条件依赖项,我建议您查看以下内容:

Conditional injection of a service in AngularJS

我已经在一些利基场景中使用了这种方法,并且效果很好。

示例:

angular.module('myApp').controller('loginController', 
    ['$injector', '$scope', '$http',
    function($injector, $scope, $http) {
        var service;

        if (something) {
            service = $injector.get('myService');
        }
    });

答案 1 :(得分:1)

即使不在控制器中注入进样器,也可以使用它

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        public void onCheckedChanged(RadioGroup arg0, int arg1) {
            if (arg0.getChildAt(0).isPressed()
                    || arg0.getChildAt(1).isPressed()
                    || arg0.getChildAt(2).isPressed()) {

                if (arg0.getChildAt(0).isPressed()) {
                    //do your stuff here
                } else if (arg0.getChildAt(1).isPressed()) {
                    //do your stuff here
                } else if (arg0.getChildAt(2).isPressed()) {
                    //do your stuff here
                }
            }
        }
    });

答案 2 :(得分:0)

使用:

  1. angular.injector().get('conditionalDep');
  2. 您可以将$injector一次注入您的文件并致电$injector.get('dep');