Ich habe Eingabe Textwert in eine Variable mit ID-Name = Suchabfrage gespeichert. Und dann durchsuche ich die JSON-Daten, um ein passendes Ergebnis zu finden, und gebe das Ergebnis dann auf dem Bildschirm aus. Gibt es einen Weg, wie ich das Wort, das mit der Suchabfrage übereinstimmen kann, fett machen kann? Ich habe versucht, stattdessen ng-bind-html zu verwenden, aber es gibt die Ergebnisse nicht aus.regex und angular, um Wörter zu formatieren, die der Abfrage entsprechen
<body ng-app="products" ng-controller="ctrl">
<input type="text" id="search-query" name="query" placeholder="Enter product name"></input>
<tbody>
<tr ng-repeat="result in searchResult|orderBy:order:reverse" >
<td >
<a ng-href="{{result.link}}" target="_blank">
//used ng-bind-html or ng-bind, but does not works
<span ng-bind-html="result.name" target="_blank"></span>
</a>
</td>
<td ng-bind="result.type"></td>
</tr>
</tbody>
var app2 = angular.module('products', []);
app2.controller('ctrl', function($scope) {
$scope.searchResult = [];
$scope.submit = function(){
var search = $("#search-query").val();
$.each(json.products, function(i, v) {
var regex = new RegExp(search, "i");
if (v.name.search(regex) != -1) {
// For the following line, is there a way which I can bold the word which match the search-query.val?
var name = v.name.replace(search, "<b>search</b>"); // doesn't work
$scope.searchResult.push({ name:name, type: v.type, link: v.url });
return;
}
});
}
Sie dieses 'versuchen {{}} result.name'. 'ng-bind-html' bindet die html-Zeichenfolge an das span-Element. –
danke, aber es funktioniert nicht. Es gibt das Format-Tag als Text im HTML-Format aus. Exp: "Neuberger Berm a n" – user21