$ injector.get导致每次调用Angular模块的run()方法
我需要手动从角度$注入器获取内容。
我已经打算:
var injector = angular.injector(['app.service', 'ng']); var myService = injector.get('myService');
这伟大的工作。但是我注意到了一个问题,每次我打电话给angular.injector
时,都会调用app.service模块的run()
方法。我在那里有东西在初始化我的应用程序,现在它正在运行太多次。
我是否应该将我的应用程序引导逻辑移出run()方法,或者是否有另一种方法在不调用run()方法的情况下获取$ injector?
我也有点担心调用喷油器很多对性能不利?
回答:
的文件可能是对目前还不清楚,但确实angular.injector
启动整个模块config
和run
块(否则你将整个问题与依赖这些块应用组件运行)。
模块服务(包括$rootScope
)的实例也不会与自举应用中的实例相同。
您可以自由地将模块划分为服务易于使用的方式,但请记住,您将无法与运行的Angular应用程序进行交互。如果您需要在Angular内部和外部使用相同的代码,请在外部定义它。
如果需要与运行的应用程序,而不是互动,然后做
var injector = angular.element(document).injector();
代替,如文档suggests。
我也有点担心打电话给喷油器很多是坏的 表现?
当然,会有一些内存和CPU的开销,其严重程度完全取决于你的模块。
以上是 $ injector.get导致每次调用Angular模块的run()方法 的全部内容, 来源链接: utcz.com/qa/265178.html