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

无法从角度检索注射器

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

无法从角度检索注射器

在回答问题之前,我们需要注意, 每个应用程序只有一个注入器实例,而每个模块只有一个
。从这个意义上说,不可能为每个模块取回注射器。当然,如果我们采用顶层模块,则它代表了整个应用程序。从这个意义上讲,应用程序和顶级模块似乎是等效的。看起来可能有细微的差别,但必须理解它才能完全正确地回答此问题。

接下来,从我能理解你想 获取

$injector
,而不是创建它的一个新的实例。问题是
angular.injector
它将
$injector
为指定为参数的模块(应用程序)创建一个新实例。在这里,必须明确指定主要的AngularJS模块(ng)。因此,在此代码示例中:

var injector = angular.injector(['gaad', 'components']);

您试图通过在“ gaad”和“
components”模块中定义的组件创建一个新的进样器,而显然

$compileProvider
没有在您的自定义模块中定义。
ng
模块添加到列表中将通过创建新的注射器来“解决”该问题
-您可能不想发生这种情况。

要实际检索与正在运行的应用程序关联的注射器实例, 我们可以使用2种方法:

  • 在AngularJS Javascript中,最简单的解决方案就是注入
    $injector
    实例:http : //docs.angularjs.org/api/angular.injector
  • 从AngularJS世界以外的国家/地区调用-
    angular.element([DOM element]).injector()
    其中[DOM元素]是
    ng-app
    定义了的圆顶元素(或该元素的任何子元素)。此处提供更多信息:http : //docs.angularjs.org/api/angular.element

这是jsFiddle,它显示了两种检索注射器的方法:http :
//jsfiddle.net/xaQzb/

还请注意,

$injector
在单元测试之外,直接使用并不是很常见的情况。从AngularJS世界之外检索AngularJS服务可能是有用的想法。



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

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

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