1

我已经修改了 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}:真

但是如何在不修改 Angular 的源代码的情况下扩展这个功能呢?我发现这个如何扩展或覆盖 angularjs 中的现有过滤器?但我认为这是另一种情况。

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

编辑 按照建议,我添加了新过滤器。我刚刚复制了filterFilter,根据我的需要对其进行了修改。虽然我还必须从 angular.js 复制函数 getter 和 isFunction

4

1 回答 1

3

您可以创建自己的过滤器来满足您的需求。至少我知道,没有办法改变这个函数的内部工作方式。此外,听起来您想要做的与 angular 的“过滤器”过滤器的记录行为根本不同,如果您更改原始文件,只会让下一个开发人员感到困惑。

于 2012-10-17T13:43:40.890 回答