Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 如何使用orderBy按角度最接近的匹配进行排序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Ng-repeat指令中处理很长的列表. @H_262_5@我有一个搜索框,我想按最接近的匹配进行筛选.

例如:@H_262_5@如果我有

>你好,你好吗?@H_262_5@>你好,你今天过得怎么样?@H_262_5@>你好兄弟

搜索“你好”

我希望“你好兄弟”首先出现,因为它是远离搜索字符串的最少字符数.

解决方法

如果要使字符数更重要,可以按字符串长度排序.

orderBy: 'String.length'

Here一个掠夺者的例子.哪个没有多大意义,但证明这是有效的.

您还可以查看filters并进行@R_419_2483@排序.

以下是您可以做的一个小例子

app.filter('sortByLength',function() {

  return function(items) {
    items.sort(function (a,b) {    
      return (a.length > b.length ? 1 : -1);
    });
    return items;
  };
});

如果你想要,你可以将搜索字符串作为参数引入angularjs上的过滤器外观.更多信息@H_262_5@ here.

app.filter('sortBymatch',function() {
  return function(items,searchString) {
    var re = new RegExp("[" + searchString + "]","g"); 
    items.sort(function (a,b) { 

      if (!searchString) {
        return input;
      }
      var matchingCharsA = a.length - (a.match(rE) || []).length; 
      var matchingCharsB = b.length - (b.match(rE) || []).length;

      return (matchingCharsA > matchingCharsB ? 1 : -1);
    });
    return items;
  };
});

你可以像这样使用它.

ng-repeat="item in.... | sortBymatch: searchString

我希望这有帮助.

大佬总结

以上是大佬教程为你收集整理的angularjs – 如何使用orderBy按角度最接近的匹配进行排序全部内容,希望文章能够帮你解决angularjs – 如何使用orderBy按角度最接近的匹配进行排序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。