2013-07-03 78 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) 
相關問題