栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AngularJS-获取所有注册服务的列表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AngularJS-获取所有注册服务的列表?

您可以获取每个模块的提供者列表(即服务/指令/控制器/工厂/等),尽管该列表是一种含糊不清的形式。

说您有以下几点:

var mod = angular.module('myModule', []);mod.factory('fact1', function($dependency1, $dependency2){ ... });mod.service('serv1', function($dependency3, $dependency4){ ... });mod.controller('ctrl1', function($dependency2, $dependency3){ ... });mod.factory('fact2', function($dependency1, $dependency4){ ... });...

然后,

mod
变量将包含一个名为的属性
mod._invokeQueue
,该属性将包含该模块中所有提供程序的数组。该
_invokeQueue
会是这个样子:

[    ['$provide', 'factory', Arguments['fact1', ['$dependency1', '$dependency2', function(){}],    ['$provide', 'service', Arguments['serv1', ['$dependency3', '$dependency4', function(){}],    ['$provide', 'controller', Arguments['ctrl1', ['$dependency2', '$dependency3', function(){}],    ['$provide', 'factory', Arguments['fact2', ['$dependency1', '$dependency4', function(){}]    ...]

因此,您可以

mod._invokeQueue
针对其中包含的每个提供程序进行搜索。

但这仅包含该特定模块的提供程序列表。如果要获取所有相关模块的列表,则需要遍历

mod.requires
数组。

如果模块具有模块级别的依赖性,则如下所示:

var mod = angular.module('myModule', ['otherModule1','otherModule2']);

然后,

mod
对象还将具有一个
mod.requires
包含这些模块依赖项名称的数组,如下所示:

angular.forEach(mod.requires, function(requiredModuleName){    // first get a reference to the required module by calling angular.module()    var requiredMod = angular.module(requiredModuleName);    // requiredMod will have its own ._invokeQueue    // requiredMod._invokeQueue will look like the _invokeQueue from above    ...    // do something with the additional providers in _invokeQueue});

希望有帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633236.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号