searchStr
はユーザー入力の検索キーワードです。サーバーからの応答が返されたらユーザー入力を強調表示したいsearchStr
ユーザーは何が検索されているのかを確認して、その応答部分を比較できます。だから私の場合、私はちょうど応答の一部となる検索された文字列を強調したいと思います。データのレンダリング時に検索入力を強調表示するにはどうすればよいですか?
私は、文字列
info|<n/a>|[routes.event] ########## Message added to processing queue ########## e63637db-aa33-4aed-b5b0-51a0764dc7f1 { workerId: 3, pid: 33029 }
を持っていると仮定し、私はsearchStr
main.htmlを
<tr ng-repeat="item in showMessages | filter:searchStr" >
<td >{{item.filename}}</td>
<td class="serverResults" ng-bind-html="item.value | trusted">{{item.value}}</td>
</tr>
ctrl.js
$scope.$on('displaySearchResults',function(e,data){
$scope.searchStr = data.searchStr;
$scope.showMessages = data.messageObj;
})
フィルターになりますe63637db-aa33-4aed-b5b0-51a0764dc7f1
_idを強調したいことができます.js
angular.module('App').filter('trusted', ['$sce', function ($sce) {
return function(text,phrase) {
if (phrase) text = text.replace(new RegExp('('+phrase+')', 'gi'),
'<span class="highlighted">$1</span>');
var content = text.toString()
console.log('Content',content);
var data = content.replace(/[|&;$%@"<>()+,]/g, "");
return $sce.trustAsResourceUrl(data);
};
}]);
ん[この質問/解答](http://stackoverflow.com/q/43188889/548997)を助けますか? – Lex
私はこのフィルタを前に見ましたが、フィルタを適用したくありません。コントローラでこれを行うことはできますか? – hussain
コントローラはDOMを操作するためのものではありません。これを行うにはディレクティブを使用してください。 –