Angular Sanitize
HTML
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-sanitize.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/foundation/5.2.1/css/foundation.min.css">
<div ng-app="mySceApp">
<div ng-controller="PhoneListCtrl">
<ul>
<li ng-repeat="item in faq | pesquisar:'usua'">
<span ng-bind-html="item.Modulo"></span>
<b ng-bind-html="item.Pergunta"></b>
</li>
</ul>
</div>
</div>
JavaScript
(function(window){
window.htmlentities = {
encode : function(str) {
var buf = [];
for (var i=str.length-1;i>=0;i--) {
buf.unshift(['&#', str[i].charCodeAt(), ';'].join(''));
}
return buf.join('');
},
decode : function(str) {
return str.replace(/&#(\d+);/g, function(match, dec) {
return String.fromCharCode(dec);
});
}
};
})(window);
function accentFold(inStr) {
return inStr.replace(/([àáâãäå])|([ç])|([èéêë])|([ìíîï])|([ñ])|([òóôõöø])|([ß])|([ùúûü])|([ÿ])|([æ])/g, function(str,a,c,e,i,n,o,s,u,y,ae) { if(a) return 'a'; else if(c) return 'c'; else if(e) return 'e'; else if(i) return 'i'; else if(n) return 'n'; else if(o) return 'o'; else if(s) return 's'; else if(u) return 'u'; else if(y) return 'y'; else if(ae) return 'ae'; });
}
var mySceApp = angular.module('mySceApp', ['ngSanitize']);
mySceApp.filter('pesquisar', function($sce) {
return function(items, term){
var term = accentFold(term.toLowerCase());
var arrayToReturn = [];
angular.forEach(items, function(item) {
var modulo = item.Modulo.toLowerCase();
var pergunta = accentFold(htmlentities.decode($sce.getTrustedHtml(item.Pergunta)).toLowerCase());
if(modulo.includes(term) || pergunta.includes(term))
arrayToReturn.push(item);
});
return arrayToReturn;
};
});
mySceApp.controller("PhoneListCtrl", function PhoneListCtrl($scope, $sce) {
$scope.faq = [
{
"Modulo": "ACO",
"Pergunta": "Liberar acesso a menus por usuários",
"Resposta": "Acesso >> usuário >> acesso a menus >> pesquise o usuário >> pesquisa >> marcar os módulos >> aplicar configurações"
},
{
"Modulo": "BAS",
"Pergunta": "Usuário não recebe e-mail de pendência",
"Resposta": "O usuário só pode receber e-mail do...