我有一个代码可以过滤一个字段并标记与输入搜索相关的单词。我需要这个过滤器,不仅通过标题,而且通过名称。我如何修改代码以便在编写时筛选标题和名称?通过Angular.js中的两个字段进行筛选
<li ng-repeat="item in data | filter:search.title"
ng-bind-html="item.title | highlight:search.title">
</li>
我有一个代码可以过滤一个字段并标记与输入搜索相关的单词。我需要这个过滤器,不仅通过标题,而且通过名称。我如何修改代码以便在编写时筛选标题和名称?通过Angular.js中的两个字段进行筛选
<li ng-repeat="item in data | filter:search.title"
ng-bind-html="item.title | highlight:search.title">
</li>
您可以通过对象收集送他们两个或两个以上选项来过滤:
<li ng-repeat="item in data | filter:{title:search.title,name:search.name}"
ng-bind-html="item.title | highlight:search.title">
</li>
它建议使用过滤器控制器,以避免$他们
消化周期<div ng-app="myApp" ng-controller="myCtrl">
<input type="text" placeholder="Search" ng-model="search.title">
<ul>
<!-- with filter -->
<li ng-repeat="item in data | filter:{title:search.title,name:search.name}"
ng-bind-html="item.title | highlight:search.title">
{{item}}
</li>
</ul>
</div>
脚本代码在这里:
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
$scope.data = [
{ title: "Bad",name:'bill' },
{ title: "Good",name:'Goe' },
{ title: "Great",name:'Brad' },
{ title: "Cool",name:'yan' },
{ title: "Excellent",name:'mikle' },
{ title: "Awesome",name:'mosa' },
{ title: "Horrible",name:'morteza' },
]
}).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)
}
})
它不适用于我http://jsfiddle.net/sgo3wxwc/ – yavg
它的工作,但突出显示不工作https://jsfiddle.net/e4njevts/ –
即时通讯编辑代码请检查:https://jsfiddle.net/e4njevts/1/ –
我在代码中的任何地方都找不到'name'。 –
我仍然无法找到'name' .. –
@MariaInesParnisari look http://jsfiddle.net/sgo3wxwc/ – yavg