如何在AngularJS中按名称筛选数组

如何在AngularJS中按名称筛选数组,angularjs,Angularjs,在我的项目中,我有一个表,在其中我循环通过一个数组。我希望用户可以选择根据自己的姓名显示数据或显示所有数据来筛选表 我有一个这样的控制器: var app = angular.module('app', []); app.controller('Ctrl',[], function($scope){ $scope.LoggedInTeacher = 'Papa Johns'; $scope.Teachers = [{Id: 1, Name: 'Patricia Johns' , Subject:

在我的项目中,我有一个表,在其中我循环通过一个数组。我希望用户可以选择根据自己的姓名显示数据或显示所有数据来筛选表

我有一个这样的控制器:

var app = angular.module('app', []);
app.controller('Ctrl',[], function($scope){
$scope.LoggedInTeacher = 'Papa Johns';
$scope.Teachers = [{Id: 1, Name: 'Patricia Johns' , Subject: 'Science'},
                   {Id: 2, Name: 'Veronica Smith' , Subject: 'Maths'},
                   {Id: 3, Name: 'Clifford Harris' , Subject: 'Music'},
                   {Id: 4, Name: 'Papa Johns' , Subject: 'Catering'},
                   {Id: 5, Name: 'Bill Gates' , Subject: 'Information Tech'},
                   {Id: 6, Name: 'Papa Johns' , Subject: 'Dance'}
]


})

;

//Here is my View - filtering my array


<div ng-controller = "Ctrl">

<table>

<tr>
<th> Name </th>
<th> Subject</th>

</tr>

<tr ng-repeat=" t in Teachers">

<td>{{t.Name}}</td>
<td>{{t.Subject}}</td>
</tr>

</div>
var-app=angular.module('app',[]);
应用程序控制器('Ctrl',[],函数($scope){
$scope.LoggedInTeacher='Papa Johns';
$scope.Teachers=[{Id:1,名称:'Patricia Johns',主题:'Science'},
{Id:2,姓名:'Veronica Smith',科目:'Math'},
{Id:3,名字:'Clifford Harris',主题:'Music'},
{Id:4,名字:'约翰爸爸',主题:'餐饮'},
{Id:5,名字:'比尔·盖茨',主题:'信息技术'},
{Id:6,名字:'约翰爸爸',主题:'跳舞'}
]
})
;
//这是我的视图-过滤我的数组
名称
主题
{{t.Name}}
{{t.Subject}}

上面的上下文工作正常,但我需要根据登录的用户名过滤结果。例如,在下表中,我想有两个复选框来过滤数据,如下所示:

<input type="checkbox" ng=model="filter table by LoggedInTeacher "> Show only Mine
<input type="checkbox" ng-model="show all"> Show All
只显示我的
全部展示
我将如何实现这一目标


谢谢

您可以使用如下过滤器:

<tr ng-repeat=" t in Teachers | filter: {name: 'Bill Gates'}">


代替{name:'Bill Gates'}您可以放置一个定义过滤器的变量。

您可以使用如下过滤器:

<tr ng-repeat=" t in Teachers | filter: {name: 'Bill Gates'}">

代替{name:'billgates'}您可以放置一个定义过滤器的变量。

您可以使用这个

<tr ng-repeat=" t in Teachers | filter: {name: LoggedInTeacher}">

您可以使用这个

<tr ng-repeat=" t in Teachers | filter: {name: LoggedInTeacher}">

保存用户输入的过滤器,如“filterValue”。在每个选项中,当用户选中复选框时更改filterValue的值

<input type="checkbox" ng-click="filterValue = LoggedInTeacher"> Show only Mine </input>
<input type="checkbox" ng-click="filterValue = ''"> Show All </input>
只显示我的
全部展示
在ng repeat中,更改表达式:

<tr ng-repeat="t in Teachers | filter: filterValue">

保存用户输入的过滤器,如“filterValue”。在每个选项中,当用户选中复选框时更改filterValue的值

<input type="checkbox" ng-click="filterValue = LoggedInTeacher"> Show only Mine </input>
<input type="checkbox" ng-click="filterValue = ''"> Show All </input>
只显示我的
全部展示
在ng repeat中,更改表达式:

<tr ng-repeat="t in Teachers | filter: filterValue">