首页 > 解决方案 > AngularJS 中的自定义过滤器

问题描述

我刚刚制作了一个简单的自定义过滤器来从字符串中删除一些字符

angular.module('myApp.filters').filter('myFilter', function() {
return function(string) {
    string = string.replace('[', '');
    string = string.replace(']', '');
    string = string.replace('","', ', ');
    string = string.replace('"', '');

    return string;
}
});

然后在模板中

<td>[[res[0].names | myFilter]]</td>

但我不断收到此错误:

Unknown provider: myFilterFilterProvider <- myFilterFilter

我还尝试将此过滤器注入负责该模板的控制器中,但没有运气。我错过了什么吗?

标签: javascriptangularjs

解决方案


您可以将过滤器构建为角度模块,然后将该模块添加为应用程序依赖项,或者只是在应用程序声明中添加过滤器。

// create a module
angular.module('myApp.filters', []).filter('myFilter', function() {
  return function(string) {
    string = string.replace('[', '');
    string = string.replace(']', '');
    string = string.replace('","', ', ');
    string = string.replace('"', '');
    return string;
  }
});
// add the module as a dependency
angular.module('myApp', ['myApp.filters']);

或者

// in the application declaration
angular.module('myApp', []).filter('myFilter', function() {
  return function(string) {
    string = string.replace('[', '');
    string = string.replace(']', '');
    string = string.replace('","', ', ');
    string = string.replace('"', '');
    return string;
}});

推荐阅读