Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:我如何懒散地加载/注册提供者?_Angularjs_Lazy Loading - Fatal编程技术网

AngularJS:我如何懒散地加载/注册提供者?

AngularJS:我如何懒散地加载/注册提供者?,angularjs,lazy-loading,Angularjs,Lazy Loading,我知道在应用程序通过$controllerProvider引导后,您可以动态注册控制器 $controllerProvider.register('controllername', function () { // controller stuff here }); 我发现的一项服务可以通过$provide注册 $provide.service('servicename', function () { // service stuff here }); 但是我似乎找不到如何以

我知道在应用程序通过
$controllerProvider
引导后,您可以动态注册控制器

$controllerProvider.register('controllername', function () {
    // controller stuff here
});
我发现的一项服务可以通过$provide注册

$provide.service('servicename', function () {
    // service stuff here
});
但是我似乎找不到如何以懒散的方式注册提供者。

我第一次看到的一种技术涉及一个
config
函数,它“窃取”必要的提供者

说明:

重要的提供程序(如指令、路由、控制器)仅在配置阶段可用。如果您想在以后添加一些内容,则必须创建一个配置函数,用于存储对所需提供程序的引用,以供以后使用(因为它不是明确允许或禁止的,我称之为“窃取”)。然后,一个知道“被盗”引用的定制服务将使用它们来注册以后需要的任何东西


我自己用RequireJS延迟加载Angular内容的努力也在使用相同的原则。

但这已经是我正在使用的,我“偷”了控制器和指令的提供程序,还有所有的,唯一找不到的是我需要提供一个提供程序,jeez命名冲突。。。你可以有服务、工厂和供应商,我知道如何注册服务和工厂,但无法让供应商工作。对不起,我不理解你最初的问题。然而,窃取
$provide
并调用
$provide.provider()
会不会懒散地工作?我没试过,只是想知道。。。我在这里看到的问题(这是您的问题吗?)是您不能使用延迟创建的提供程序本身。你可以使用(注入)它提供的服务,但你不能注入提供者。我觉得很愚蠢:p刚刚发现我的问题,我在提供者中有一个输入错误。。。正确的语法是$provide.provider('name',function(){});