AngularJS:我如何延迟/注册提供商?

时间:2014-04-30 09:42:17

标签: angularjs lazy-loading

我知道你可以通过$controllerProvider通过

引导应用程序后动态注册控制器
$controllerProvider.register('controllername', function () {
    // controller stuff here
});

我找到的服务可以通过$ provide

注册
$provide.service('servicename', function () {
    // service stuff here
});

但我似乎无法找到如何以延迟方式注册提供程序。

1 个答案:

答案 0 :(得分:0)

我第一次看到here的一种技术涉及config功能,即“抢断”#34;必要的提供者。

说明:

重要的提供者(例如指令,路由,控制器)仅在配置阶段可用。如果您想稍后添加内容,则必须创建一个配置函数,该函数存储对所需提供者的引用以供以后使用(因为它没有明确允许或禁止,我称之为#34;窃取") 。然后是一个了解"被盗"的定制服务。引用将使用它们来注册稍后需要的内容。

我自己努力使用RequireJS延迟加载Angular的东西是here并使用相同的原则。