Подтвердить что ты не робот

Как ввести службу в качестве зависимости для настраиваемого фильтра в angular.js?

Я пытаюсь создать специальный фильтр для отслеживания событий. Таким образом, фильтр может вызывать методы в службе segmentio.

angular.module('sageApp')
  .filter('trackEvent', function(segmentio) {
    return function(entry, category) {
     segmentio.track(entry, category);
    }
});

Но услуга сегментации недоступна. Любые идеи относительно того, как зависимость вводит услугу в фильтр, будут высоко оценены.

4b9b3361

Ответ 1

Try:

app.filter('sageApp', ['segmentio', function(segmentio) {
    return function(entry, category) {
        segmentio.track(entry, category);
    }
}]);

Ответ 2

Служба проверена и работает. По общему признанию, я выяснил свою проблему: при использовании angular, иногда инструменты chrome dev не отображают переменные в закрытии, когда вы устанавливаете отладчик для проверки. Когда я сделал console.log(segmentio), он работал нормально.