当前位置: 代码迷 >> JavaScript >> 在 Angularjs 应用程序中的应用程序引导之前使用自定义服务
  详细解决方案

在 Angularjs 应用程序中的应用程序引导之前使用自定义服务

热度:113   发布时间:2023-06-07 16:41:18.0

我正在尝试在应用程序引导之前使用自定义服务。

var initInjector = angular.injector(['ng', 'myModule']);

var myCustomService = initInjector.get('myCustomService');

var $http = initInjector.get('$http');

var $q = initInjector.get('$q');

然后在 myCustomService 我得到:

angular.module('myModule').service('myCustomService',myCustomService);

 function myCustomService($location, $q){
   // some logic
 }

我得到的错误是:

未捕获的错误:[$injector:unpr] 未知提供者:$rootElementProvider <- $rootElement <- $location <- myCustomService <- $location

似乎无法加载 myCustomService 中使用的依赖项..

有没有办法更好地组织预引导代码和逻辑?

我知道这是一个迟到的答案,但从问题中发布的错误消息来看,似乎$location应该在应用程序引导之前可用。

要在引导之前获取$location ,您需要提供$rootElement 一种方法是模拟它:从 angular-mocks 注入 ngMock 模块以获取注入器。

var initInjector = angular.injector(['ng', 'myModule', 'ngMock']);
var $location = initInjector.get('$location');

另请查看和。

  相关解决方案