【问题标题】:angularjs - runtime dependency injection?angularjs - 运行时依赖注入?
【发布时间】:2012-11-23 08:57:31
【问题描述】:

我希望简单的一个..

这里有一个plunker 供参考。

我知道如何在编译时指定依赖项(参见 MainCtrlInjected 控制器)。但是如何在运行时拉下依赖项,并给出该依赖项的名称? (参见 MainCtrlInjectedRuntime 控制器)

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    您可以使用 $injector 在运行时获取您的值:

    检查我的分叉 plunker:http://plnkr.co/edit/iVblEU?p=preview

    代码:

    app.controller('MainCtrlInjectedRuntime', [
      '$scope',
      '$injector'
      ($scope, $injector) ->
    
       nameValHandle = 'nameVal'
    
       # !!! This is how you inject at runtime
       name = $injector.get(nameValHandle)
    
       $scope.name = name
    ])
    

    【讨论】:

    • 我看到注入器可以用于注入已知对象,注入器可以向模块添加新的依赖项吗?比如,当我动态预加载一个小部件时,我可以将它添加到应用程序中,以便应用程序显示它吗?
    【解决方案2】:

    我刚刚进入 angularjs,但我相信处理这种情况的适当方法是将服务注入 MainCtrlInjectedRuntime。注入的服务会有你的getNameFromValue 方法。

    【讨论】:

    • 对于在编译时已知的依赖项名称是正确的,但有时在运行时这会派上用场。我使用它的目的是,在指令中,我将属性设置为有助于配置指令的“值”依赖项的名称。在我的指令中,我动态地解决了依赖关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 2014-07-30
    • 2010-11-29
    相关资源
    最近更新 更多