我刚进入AngularJS,我正在尝试过滤表格。到目前为止,我动态创建了我的表,工作正常。
HTML:
<div ng-app="tableApp" ng-controller="tableAppController">
<input type="text" class="form-control" ng-model="searchKey" placeholder="search..."/>
<div class="table-responsive">
<table class="table table-striped" id="trackingTable">
<thead>
<tr>
<th>No.r.</th>
<th>a</th>
<th>b</th>
<th>c</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="x in deviceData">
<td>{{ $index + 1 }}</td>
<td>{{x.a}}</td>
<td>{{x.b}}</td>
<td>{{x.c}}</td>
</tr>
</tbody>
</table>
</div>
</div>
<script src="scripts/AngularJS/tableAppController.js"></script>
tableAppController.js:
var app = angular.module('tableApp', []);
app.controller('tableAppController', function ($scope) {
$scope.deviceData = [{a: "123", b: "123", c: "01.01.2001"}, {a: "dummyDeviceID2", b: "dummyCarID98", c: "01.01.2001"}];
});
我现在正在尝试实现一个过滤器,它根据来自文本字段的用户输入过滤表中的数据。但只有当用户在课程文本框中键入内容时。我开始将html文件中的行<tr ng-repeat="x in deviceData">
更改为<tr ng-repeat="x in deviceData | filter:{'a':searchKey}">
为什么这种方法不起作用?如何解决此问题?
答案 0 :(得分:1)
您应该能够在搜索对象上使用键来执行此操作:
<input type="text" class="form-control" ng-model="searchKey.a" placeholder="search..."/>
<tr ng-repeat="x in deviceData | filter:searchKey">
有关更多背景信息,请参阅官方示例中的第36行:http://plnkr.co/edit/YUfG7yzxBQ0gT9bsnTN2?p=preview
答案 1 :(得分:0)
试试这个:
{{ filter_expression | filter : expression : comparator}}
<tr ng-repeat="x in deviceData | filter : searchKey">
AngularJS官方文档: filter