在不改变源的情况下扩展AngularJS函数filterFilter?

时间:2012-10-17 10:09:17

标签: angularjs

我修改了AngularJS函数filterFilter,因此我可以使用完全匹配。因此,搜索“1”仅给出“1”,而不是“11”,“12”等。

function filterFilter() {
  return function(array, expression,exact) {
  ...
    var search = function(obj, text){
    ...
      case "string":
        return exact?('' + obj).toLowerCase() === text:('' + obj).toLowerCase().indexOf(text) > -1;

现在我可以像这样使用它: sectionDicts |滤波器:{ID:section.sectionDictId}:真

但是如何在不修改角度来源的情况下扩展此功能?我发现了这个How to extend or override existing filters in angularjs?,但我认为这是另一种情况。

https://groups.google.com/forum/#!msg/angular/v-WjFF-iR88/XSXRhkGhf_sJ也不起作用

修改 正如建议我添加了新的过滤器。我刚刚复制了filterFilter,将其修改为我的需求。虽然我还必须从angular.js

复制函数getter和isFunction

1 个答案:

答案 0 :(得分:3)

您可以创建自己的过滤器来满足您的需求。我真的没有办法改变这个功能的内部工作方式,至少我知道这一点。此外,听起来你想要做的事情与角度的“过滤器”过滤器的记录行为有根本的不同,如果你改变了原版,就会混淆下一个开发者的出现。