Is it possible to assist in highlighting the searched words in yellow?
Below is an example of code that filters words from the displayed data from a JSON feed URL.
angular.module('sample', []).
controller('sampleController', ['$scope', '$http', function($scope, $http) {
var url = "https://spreadsheets.google.com/feeds/list/153Obe1TdWlIPyveZoNxEw53rdrghHsiWU9l-WgGwCrE/od6/public/values?alt=json";
$http.get(url)
.success(function(data, status, headers, config) {
$scope.users = data.feed.entry;
console.log($scope.users);
})
.error(function(error, status, headers, config) {
console.log(status);
console.log("Error occurred");
});
// code to highlight
$scope.highlight = () => {
//create copy of the original array
$scope.filteredContent = JSON.parse(JSON.stringify($scope.users));
$scope.filteredContent.forEach(fc => {
const regEx = new RegExp($scope.search);
alert("here");
fc.question = fc.gsx$topic.$t.replace(regEx, '<span class="highlight">${$scope.search}</span>');
fc.answer = fc.gsx$response.$t.replace(regEx, '<span class="highlight">${$scope.search}</span>');
});
};
// code to highlight
$scope.search='';
$scope.searchFilter=function(item){
if(item.gsx$topic.$t.toLowerCase().indexOf($scope.search.toLowerCase()) != -1 || item.gsx$response.$t.toLowerCase().indexOf($scope.search.toLowerCase()) != -1){
return true;
}
return false;
}
}]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.0/angular.min.js"></script>
<div ng-app="sample" ng-controller="sampleController">
<div class="black">
<input type="text" name="search" ng-keyup="highlight()" ng-model="search" placeholder="search"/>
</div>
<br>
<br>
<br>
<table style="border: 1px solid black ;">
<tbody>
<tr>
<td>
<center><b>Question</b></center>
</td>
<td>
<center><b>Response</b></center>
</td>
</tr>
<tr ng-repeat="user in users | filter:searchFilter">
<td style="border: 1px solid black ; width:30%;white-space: pre-wrap;" ng-bind-html="user.gsx$topic.$t">{{user.gsx$topic.$t}}</td>
<td style="border: 1px solid black ; width:70%;white-space: pre-wrap;" ng-bind-html="user.gsx$response.$t">{{user.gsx$response.$t}}</td>
</tr>
</tbody>
</table>
</div>
Code link: https://jsfiddle.net/bjqsgfzc/1/