2013-07-03 109 views
2

我在angularjs应用程序(写在CoffeeScript中)中定义一个非常简单的过滤器,它看起来像这样:

userName = (user) -> 
    (user?.match /^user:([^@]+)/)?[1] 

angular.module('myApp.filters', []) 
    .filter('userName', -> userName) 

我想使用此过滤器我myApp.services模块是这样的:

class MyClassProvider 
    this.$inject = ['$filter'] 
    constructor: ($filter) -> 
    @user_filter = $filter 'userName' 
    ... more code 

angular.module('myApp.services', ['ngSanitize','ngResource','myApp.filters']) 
    .provider('MyClassProvider', MyClassProvider) 

但它给回下面的错误(开发者控制台):

Uncaught Error: Unknown provider: $filter from myApp.services 

有人可以帮助解决问题吗?

+0

geujv,如果你要制作一个[Plunker](http://plnkr.co/)来重现这个问题,我很乐意看一看!您可以通过启动编辑器,单击“新建”按钮上的下拉列表,将鼠标悬停在“AngularJS”上并单击所需版本旁边的咖啡图标来创建AngularJS +咖啡调节器。 –

回答

1

您在myApp.services的全局依赖项中没有'ng',您不能在没有角度的情况下注入$ filter。

angular.module('myApp.services', ['ng', 'ngSanitize','ngResource','myApp.filters']) 
    .provider('MyClassProvider', MyClassProvider) 
相关问题