如何在angular.js中为自定义过滤器注入服务作为依赖项?

时间:2013-07-16 22:10:23

标签: angularjs

我正在尝试创建自定义过滤器来跟踪事件。因此过滤器可以调用segmentio服务上的方法。

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

但segmentio服务不可用。关于如何依赖注入服务到过滤器的任何想法都会非常感激。

2 个答案:

答案 0 :(得分:46)

尝试:

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

答案 1 :(得分:3)

该服务经过测试并正常运行。实际上我发现了我的问题,当使用angular时,有时chrome dev工具在调试器进行检查时不会在闭包中显示变量。当我做console.log(segmentio)时,它运行良好。