Как определить настраиваемый многозначный фильтр на angularjs?
Итак, я хочу, чтобы создать пользовательский фильтр для поиска по нескольким значениям (в частности buildingUse
и client
), как вы можете видеть на изображении ниже.
Я хочу получить значения, соответствующие text
, введенным в строке поиска на основе этих свойств. Итак, как я могу это достичь?
На самом деле мой код:
HTML:
<form role="form">
<div class="container">
<md-content layout-padding="">
<div layout="row" layout-wrap>
<md-input-container class="md-block" flex-gt-sm="">
<label>Search Buildings</label>
<input name="search" ng-model="search.$">
</md-input-container>
</div>
</md-content>
<table style="width: 100%;" >
<thead>
<tr>
<th ng-click="order('buildingName')">Building Name</th>
<th ng-click="order('client')">Client</th>
<th ng-click="order('buildingUse')">Building Use</th>
<th ng-click="order('addressline1')">Address</th>
<th ng-click="order('city')">City</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="build in allbuildings | orderBy:predicate:reverse | filter:paginate| filter:search" >
<td data-ng-click="goto_detail(build.id,build.buildingName)">{{build.buildingName}}
</td>
<td data-ng-click="goto_detail(build.id,build.buildingName)">{{build.client}}
</td>
<td data-ng-click="goto_detail(build.id,build.buildingName)">{{build.buildingUse}}
</td>
<td data-ng-click="goto_detail(build.id,build.buildingName)">{{build.addressline1}}
</td>
<td data-ng-click="goto_detail(build.id,build.buildingName)">{{build.city}}
</td>
</tr>
</tbody>
</table>
</div>
</form>
JS:
var App = angular.module('myApp', []);
App.controller('buildingdisplayController', ['$scope', '$rootScope', '$http', '$location',
function($scope, $rootScope, $http, $location, $localStorage) {
$http.get('/api/buildingslist')
.success(function(data) {
$scope.allbuildings = data;
})
.error(function(data) {
console.log('error');
})
$scope.order = function(predicate) {
$scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
$scope.predicate = predicate;
};
}
]);
Спасибо за ваш ответ. –