Ich habe $scope.data
, die bereits auf dem Bildschirm mit ng-repeat
angezeigt wird, habe ich einen Eingang, wo Benutzer von $scope.data
suchen kann, So habe ich Filter erstellt, wenn der User-Suchtext mit $scope.data
markieren diesen Text, es wirft keine Ausnahme aber auch nicht Hervorhebung Der Text, ich bin relativ neu zu angularjs Filter Hilfe wird sehr geschätzt werden. Danke im Voraus.Wie markieren Sie Daten, wenn der Suchtext mit dem verfügbaren Text im Array übereinstimmt?
ctrl.js
$scope.data = ["Lorem Ipsum is simply dummy text", "Lorem Ipsum is simply dummy text"];
main.html
<div class="row search-input-margin">
<div class="col-md-12 form-group">
<div class="col-md-3">
<label for="search">Search Logs:</label>
</div>
<div class="col-md-9">
<input type="text" class="form-control" id="search" ng-model="vm.searchLog">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<ul style="list-style: none;">
<li ng-repeat="message in data track by $index"><span><strong>Log:</strong></span><span>{{message}}</span></li>
</ul>
</div>
<div>
<ul>
<!-- filter code -->
<div ng-repeat="item in data | filter:vm.searchLog"
ng-bind-html="item | highlight:vm.searchLog">
</div>
</ul>
</div>
</div>
filter.js
angular.module('App').filter('highlight', function($sce) {
return function(text, phrase) {
if (phrase) text = text.replace(new RegExp('('+phrase+')', 'gi'),
'<span class="highlighted">$1</span>')
return $sce.trustAsHtml(text)
}
});
Schlagen Sie ein erstellen einfache Plocker-Demo, die dies reproduziert – charlietfl
Entschuldigung nicht autorisiert – hussain
nicht wahr? es ist eine kostenlose Seite und erfordert keine Anmeldung oder Registrierung auch – charlietfl