Javascript 如何列出可用的筛选器

Javascript 如何列出可用的筛选器,javascript,angularjs,Javascript,Angularjs,我有一个场景,希望用户能够选择应用哪个过滤器。我不想在html中维护一个单独的过滤器列表。考虑到下面的代码,我试图访问已注册过滤器的名称。(我是AngularJS的新手,如果这是显而易见的,我深表歉意) 我想做这件事是没有办法的。但是,如果您正在挂接$filterProvider,则可以获得此信息: .config(function($filterProvider, $provide) { // keep the original register fucntion var re

我有一个场景,希望用户能够选择应用哪个过滤器。我不想在html中维护一个单独的过滤器列表。考虑到下面的代码,我试图访问已注册过滤器的名称。(我是AngularJS的新手,如果这是显而易见的,我深表歉意)


我想做这件事是没有办法的。但是,如果您正在挂接
$filterProvider
,则可以获得此信息:

.config(function($filterProvider, $provide) {
    // keep the original register fucntion
    var registerFn = $filterProvider.register;
    // array with all filters
    var allFilters = [];

    // replace the register function with our own implementation
    $filterProvider.register = function(name, fn){
        // save the name in the array
        allFilters.push(name);
        // call the original function
        registerFn(name, fn);
    }

    // register a value to retrieve the filters
    $provide.value('filters', allFilters);

}) 
过滤器
值现在可以通过注入在控制器中使用:

.controller('MainCtrl', function(filters){
   // outputs an array with all known filters
   console.log(filters);
})
.controller('MainCtrl', function(filters){
   // outputs an array with all known filters
   console.log(filters);
})