angularjs – 如何使用orderBy按角度最接近的匹配进行排序
发布时间:2020-12-17 17:25:40 所属栏目:安全 来源:网络整理
导读:在ng-repeat指令中处理很长的列表. 我有一个搜索框,我想按最接近的匹配进行筛选. 例如: 如果我有: 你好,你好吗? 你好,你今天过得怎么样? 你好兄弟 我搜索“你好” 我希望“你好兄弟”首先出现,因为它是远离搜索字符串的最少字符数. 解决方法 如果要使字
在ng-repeat指令中处理很长的列表.
我有一个搜索框,我想按最接近的匹配进行筛选. 例如: >你好,你好吗? 我搜索“你好” 我希望“你好兄弟”首先出现,因为它是远离搜索字符串的最少字符数. 解决方法
如果要使字符数更重要,可以按字符串长度排序.
orderBy: 'string.length' Here是一个掠夺者的例子.哪个没有多大意义,但证明这是有效的. 您还可以查看filters并进行自定义排序. 以下是您可以做的一个小例子 app.filter('sortByLength',function() { return function(items) { items.sort(function (a,b) { return (a.length > b.length ? 1 : -1); }); return items; }; }); 如果你想要,你可以将搜索字符串作为参数引入angularjs上的过滤器外观.更多信息 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 我希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |