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显示失败。作为参考,下面是他们向供应商。