Проблемы с реализацией ember-cli-mixpanel

Я бэкэнд-разработчик, пытающийся окунуться в дивный новый мир javascript-интерфейсов MVC. Я создаю простое приложение Ember-cli (на данный момент v1.12) и пытаюсь интегрировать mixpanel через ember-cli-mixpanel (v0.0.3).

Я установил его через ember install ember-cli-mixpanel, поэтому он у меня есть в моем каталоге node_modules и правильно указан в моем packages.json.

Документы немного скудны для новичка, но я прочитал это:

Есть один ручной шаг, который включает нашу оболочку в ваш Router. Просто расширьте свой маршрутизатор с помощью tracking_mixin.js.

это означает, что мне нужно иметь эту строку в моем приложении router.js:

import TrackingMixin from './mixin/tracking_mixin';

Однако, когда приложение загружается, в моей консоли появляется следующее:

Uncaught TypeError: this.trackRouteChange не является функцией

trackRouteChange — стандартный трекер событий просмотра страниц, который вызывается из миксина, поэтому я думаю, что это означает, что он загружен правильно... но я не уверен в этом.

У меня правильно настроен мой environment.js с конфигурацией mixpanel:

микспанель: {

включено: правда,

LOG_EVENT_TRACKING: правда,

токен: 'supersecrettokenhere',

disable_auto_tracking: ложь

},

Мы будем очень признательны за любое понимание. Я уверен, что это что-то простое, но, попробовав это некоторое время, я думаю, что просто попал в блок.


person sb-    schedule 08.08.2015    source источник


Ответы (1)


Вы импортировали миксин, но вам нужно передать его маршрутизатору, чтобы функции и свойства миксина были включены в объект маршрутизатора. Вы можете передать миксин, как показано здесь:

import TrackingMixin from './mixin/tracking_mixin';

var Router = Ember.Router.extend(TrackingMixin, {
  // TrackingMixin's functions and properties will now be mixed in to Router.
});
person protonate    schedule 12.08.2015
comment
О, гениально - спасибо. Похоже, что добавление нескольких миксинов таким образом невозможно, но вы можете создать один миксин, который сочетает в себе функциональность других миксинов? - person sb-; 12.08.2015
comment
В качестве дополнительных аргументов к extend() можно добавить несколько примесей, поэтому: var Router = Ember.Router.extend(TrackingMixin, AnotherMixin, { // ... - person protonate; 18.08.2015