【问题标题】:Injector error using Angulartics with AngularJS使用带有 AngularJS 的 Angulartics 的注入器错误
【发布时间】:2014-07-02 07:54:20
【问题描述】:

我在添加 Angulartics 时遇到问题。

在我的 app.js 中,我刚刚添加了两个依赖项(Angulartics 和最后一个),您可以看到:

var smsApp = angular.module('smsApp', [
  'ngRoute',
  'smsControllers',
  'smsFilters',
  'google-maps',
  'pascalprecht.translate',
  'angulartics',
  'angulartics.google.analytics',
]);

然后在我的 index.html 中添加:

<script src="./js/angulartics.js">
<script src="./js/angulartics-ga.js"> ---- paths to these files are ok
但是当我想创建该模块时:

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

我收到了这个错误:

Uncaught Error: [$injector:unpr]http://errors.angularjs.org/1.2.15/$injector/unpr?p0=%24rootElementProvider%20%3C-%20%24rootElement%20%3C-%20%24location

没有 Angulartics 一切顺利!请帮助我:) 谢谢

我正在关注这个tutorial

【问题讨论】:

  • 也许你应该在 angulartics github 页面提出问题
  • 我没有尝试过 Angulartics,但我对 Angularytics 很幸运,它可能做同样的事情。 Angularytics

标签: javascript angularjs google-analytics angulartics


【解决方案1】:

假设您正在阅读此处的文档:https://github.com/angulartics/angulartics

您需要通过运行“bower install angulartics-google-analytics --save”来安装 angularitics.google.analytics 插件

【讨论】:

    【解决方案2】:

    你为什么使用注射器?

    如果您使用injector,则说明您没有使用常规的 AngularJS 引导代码,因此未定义 $rootElement

    你可以模拟对象:

    <script src="/path/to/angular-mock.js">
    ...
    var injector = angular.injector(['smsApp', 'ngMock', 'ng']);
    

    或者在你的应用中明确定义

    smsApp.config(['$provide', function($provide) {
        // Should match the element that contains your ng-app="smsApp" attribute
        $provide.value('$rootElement', angular.element(document.body)); 
    }]);
    

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 2017-01-20
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      相关资源
      最近更新 更多