ionic,angularJs实现搜索框过滤关键字


利用AngularJS自带的过滤器,我们可以很方便的实现搜索框过滤的效果,但是怎么实现类似百度搜索过滤列表中关键字变色的效果呢?

页面上代码:

1 <input type="text" ng-model="keyword" style="border:solid 1px #E4E5E7;">        
2 <div style="margin:20px;">
3     <div style="padding: 10px;" ng-repeat="d in data | filter:keyword">
4         <span ng-bind-html = "d | wordPlace:keyword"></span>
5     </div>
6 </div>

控制器代码:

1 angular.module('starter.filter', [])
2 .filter('wordPlace', function ($sce) {
3    return function (input, word) { 
4      if (!word)
5        return input;
6      var result = input.replace(word, "<span style='color:#6CA4FF;'>" + word + "</span>");
7      return $sce.trustAsHtml(result);
8    };
9  })

过滤器实现起来也很简单,找到item中的关键字部分替换为一个带样式的span标签+关键字,这样就可以了。注意一点,要调用angularjs的$sce.trustAsHtml()方法,否则这个过滤器在最终编译后在页面上显示的是直接带span标签的字符串,不会 解析为html标签。 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM