angularjs:未捕获错误:未知提供者:$ filter

时间:2013-07-03 11:10:21

标签: angularjs coffeescript

我在angularjs app中定义了一个非常简单的过滤器(用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 

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

1 个答案:

答案 0 :(得分:1)

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

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