2016-09-24 1 views
0

Я интегрирую Mixpanel Analytics в свое приложение, и я хочу отслеживать каждое изменение состояния и иметь возможность отправлять некоторые дополнительные параметры. Было бы лучше, если бы было одно место для этого, а не добавление кода отслеживания для каждого контроллера.Ионная функция запуска при каждом изменении состояния

Я хочу, чтобы запустить что-то похожее на это:

mixpanel.track("Page Change", {"state":$state.current.name})

на каждом изменении состояния. Каков наилучший способ сделать это?

ответ

4

Лучший способ сделать это, вероятно, щ-маршрутизатор вещь, не ионное вещь:

angular.module('myApp') 
    .run(function() { 
    $rootScope.$on('$stateChangeStart', function() { 
     // do thing 
    }) 
    }) 

Положите его в блок запуска, который будет работать, когда ваше приложение инициализирует. Существует также событие $stateChangeSuccess.

Редактировать: Я сказал, что это угловая вещь, но это ui-router вещь, но я думаю, что ионный использует ui-router по умолчанию.

+0

Спасибо! Это сделало трюк :) – dmonaldo

+0

Возможно, вам нужно ввести $ rootScope в вашу функцию – John