Javascript 在提供者中使用$filter

Javascript 在提供者中使用$filter,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有以下提供者 (function (angular) { var listing_app = angular.module('TEST.Providers', []); listing_app.provider('TESTAdapter', ['$filter',function ($filter) { var self = this; this.$get = function () { return {

我有以下提供者

(function (angular) {
    var listing_app = angular.module('TEST.Providers', []);
    listing_app.provider('TESTAdapter', ['$filter',function ($filter) {

        var self = this;
        this.$get = function () {
            return {
                "convert": function (result) {
                    //do something
                    return result;
                }
            };
        };
    }]);



})(angular);

我得到以下错误,错误:[$injector:unpr]未知提供程序:$filter。我无法理解为什么我们不能在提供程序中插入$filter

您实际上是这样在$get函数上插入的:

this.$get = ['$filter', function ($filter) {

您可以插入过滤器,但需要在其名称中使用后缀“Filter”。 例如,filterFilter、dateFilter、someSortFilter等

因此,在这种情况下:


listing_app.provider('TESTAdapter',['filterFilter',函数($filter){

这是为提供者进行依赖注入的地方,并且可以强制执行。由于$get作为服务的创建,它类似于控制器和工厂等的主要功能。在提供者创建之前,不应该依赖其他服务。这两者之间有什么区别2dimiric似乎说这是因为提供程序是在工厂之前实例化的,因此提供程序必须仅依赖于其他提供程序。因此,您只能在那里注入一些内容。使用$filterProvider显示它。使用factory显示失败。作为参考,下面是他们向供应商。