Ошибка инжектора при использовании Angulartics с AngularJS

У меня проблема с добавлением 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/%24injector/unpr?p0=%24rootElementProvider%20%3C-%20%24rootElement%20%3C-%20%24location

Без Angulartics это идет хорошо! Пожалуйста, помогите мне:) спасибо

Я следую этому уроку.

2 ответа

Предполагая, что вы читаете документы здесь: https://github.com/angulartics/angulartics

Вам нужно установить плагин angularitics.google.analytics, запустив "bower install angulartics-google-analytics --save"

Почему вы используете инжектор?

Если вы используете 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)); 
}]);
Другие вопросы по тегам