使用Angulartics与AngularJS的注射器错误

Bai*_*jak 7 javascript google-analytics angularjs angulartics

我有添加Angulartics的问题.

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

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

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

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

var injector = angular.injector(['smsApp', 'ng']);
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

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

没有Angulartics它很顺利!请帮帮我:)谢谢

我正在学习本教程.

Bla*_*ise 1

你为什么使用注射器?

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

您可以模拟该对象:

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

或者在您的应用程序中明确定义它

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