Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 通过角度匹配实现精确匹配_Angularjs - Fatal编程技术网

Angularjs 通过角度匹配实现精确匹配

Angularjs 通过角度匹配实现精确匹配,angularjs,Angularjs,我已经创建了一个包含以下列的表:姓名、日期、性别和薪水。表格上方有两个搜索文本框。1) 按姓名搜索2)按工资搜索。然后我给出了一个称为“精确匹配”的复选框。 每当我在“按名称搜索”文本框中键入任何字母时,如果该字母出现在表的“名称”列中,则页面将返回这些行。工资文本框也会发生同样的情况。但在我选中“精确匹配”框后,它仅在精确值匹配时返回。例如,如果我在“名称搜索”框中键入“Ben”,并且如果Ben出现在“名称”列中,则只有它会返回该特定行,否则不会返回 这里的问题是字母精确匹配可以正常工作,但当

我已经创建了一个包含以下列的表:姓名、日期、性别和薪水。表格上方有两个搜索文本框。1) 按姓名搜索2)按工资搜索。然后我给出了一个称为“精确匹配”的复选框。 每当我在“按名称搜索”文本框中键入任何字母时,如果该字母出现在表的“名称”列中,则页面将返回这些行。工资文本框也会发生同样的情况。但在我选中“精确匹配”框后,它仅在精确值匹配时返回。例如,如果我在“名称搜索”框中键入“Ben”,并且如果Ben出现在“名称”列中,则只有它会返回该特定行,否则不会返回

这里的问题是字母精确匹配可以正常工作,但当我对薪水列使用精确匹配并键入任何数字时,它不会返回任何值。同样的事情也发生在date身上。我不确定我们在处理数字时是否需要在代码中添加一些内容

以下是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>

精确匹配


名称 出生日期 性别 薪水 {{employee.name} {{employee.dateOfBirth}日期:“MM/dd/yyyy”} {{employee.gender} {{employee.salary}}
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;


});
//
var myApp=angular.module(“myModule”,[]);
控制器(“myController”,函数($scope){
var雇员=[
{姓名:“本”,出生日期:新日期(“1989年11月20日”),性别:“男”,工资:50000},
{姓名:“Stifler”,出生日期:新日期(“19002年7月15日”),性别:“女性”,工资:700000},
{姓名:“戈登”,出生日期:新日期(“2006年4月10日”),性别:“男性”,工资:900000000},
{姓名:“拉姆齐”,出生日期:新日期(“1996年1月18日”),性别:“男性”,工资:87864521},
{姓名:“Leon”,出生日期:新日期(“2009年2月8日”),性别:“女性”,工资:21326478}
];
$scope.employees=员工;
});

尝试将薪资字段上的输入类型更改为数字

当启用“精确匹配”时,angular使用严格的比较器,===而不是==,因此当使用文本字段类型时,类型不匹配。

非常感谢。更改输入类型确实解决了问题。