我创建了一个包含列的表:名称,日期,性别和薪水。在表格上方有两个搜索文本框。 1)按名称搜索2)按工资搜索。然后我给了一个名为'Exact Match'的复选框。 每当我在“按名称搜索”文本框中键入任何字母时,如果该字母出现在表的名称列中,则页面将返回这些行。工资文本框也是如此。但是在我选中完全匹配框之后,只有在精确值匹配时才会返回。例如 - 如果我在名称搜索框中键入'Ben',并且如果Ben出现在名称列中,那么只有它将返回该特定行,否则不会。
这里的问题是字母完全匹配工作正常但是当我使用完全匹配工资列并键入任何数字时,它不会返回任何值。同样的事情也发生在日期。我不确定在处理数字时我们需要在代码中添加一些内容。
这是HTML代码:
<!doctype html>
<html ng-app="myModule">
<head>
<script src="../angular.min.js"> </script>
<script src="Script12.js"> </script>
</head>
<body>
<div ng-controller="myController">
<input type="text" placeholder="search name" ng-model="searchText.name">
<input type="text" placeholder="search gender" ng-model="searchText.gender">
<input type="text" placeholder="search DOB" ng-model="searchText.dateOfBirth">
<input type="text" placeholder="search Salary" ng-model="searchText.salary">
<input type="checkbox" ng-model="exactMatch">EXACT MATCH
<br><br>
<table>
<thead>
<tr>
<th>Name</th>
<th>Date Of Birth</th>
<th>Gender</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="employee in employees |filter:searchText:exactMatch ">
<td> {{employee.name}}</td>
<td> {{employee.dateOfBirth | date:"MM/dd/yyyy"}}</td>
<td> {{employee.gender}}</td>
<td> {{employee.salary}}</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
Java脚本文件:
/// <reference path="../angular.min.js" />
var myApp = angular.module("myModule",[]);
myApp.controller("myController", function($scope) {
var employees = [
{name: "Ben", dateOfBirth: new Date("November 20, 1989"), gender: "Male", salary:50000 },
{name: "Stifler", dateOfBirth: new Date("July 15, 19002"), gender: "Female", salary:700000 },
{name: "Gordon", dateOfBirth: new Date("April 10, 2006"), gender: "Male", salary:900000000 },
{name: "Ramsay", dateOfBirth: new Date("January 18, 1996"), gender: "Male", salary:87864521 },
{name: "Leon", dateOfBirth: new Date("February 8, 2009"), gender: "Female", salary:213265478 }
];
$scope.employees = employees;
});
答案 0 :(得分:0)
尝试将输入类型更改为工资字段中的数字
.
如果完全匹配是角度使用严格比较器,===而不是==,因此当使用文本字段类型时,类型不匹配。