由于$injector
(服务)官方文档解释不足,我很难理解它是如何运作的。每个应用程序可以有多少$injector
个?我应该什么时候使用它? $injector
如何运作? (依此类推)请向我提供一个真实世界的解释和一些JavaScript沙箱样本。
答案 0 :(得分:63)
每个Angular应用程序都有一个注入器。通常,您无需直接与其进行交互。注入器是使Angular中依赖注入工作的关键。
factory
,service
,directive
等模块方法会使用注射器注册这些项目。当您注入某些东西(例如,服务到控制器)时,注入器将查找然后实例化该服务(如果它尚未实例化 - 如果是,它将返回已经实例化的对象)。
如果出于某种原因,您确实需要动态地将服务注入控制器,请参阅https://stackoverflow.com/a/14418384/215945以获取如何执行此操作的示例。 另请参阅https://stackoverflow.com/a/14743553/215945。