28

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

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

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

4

2 回答 2

49

尝试:

app.filter('sageApp', ['segmentio', function(segmentio) {
    return function(entry, category) {
        segmentio.track(entry, category);
    }
}]);
于 2013-07-16T23:03:55.650 回答
3

该服务经过测试并且有效。Acutally 我发现了我的问题,当您使用 angular 时,有时当您将调试器放入 inspect 时,chrome 开发工具不会显示闭包中的变量。当我执行 console.log(segmentio) 时,它运行良好。

于 2013-12-07T01:30:01.603 回答