我正在尝试在列表视图中应用过滤器。每当我在输入字段中键入任何内容时,它都会过滤我的列表。我可以在写入用户名时进行过滤,这对用户可见.example写下“pa”它会对我的列表进行排序并只显示一行。这是正确的。但是当我写“关键字过滤器”时,用户看不到它t filter。换句话说,当我在第二个输入字段(“关键字过滤器”)上键入“Angular js”时..它应该显示 pab ..因为“ pab“有 Angular js 关键字。
这是我的代码 http://plnkr.co/edit/TccgJydcZNkXQGpnbbP0?p=preview
// Code goes here
angular.module('myApp', [])
.controller('myCtrl', function($scope){
$scope.users = [
{firstname: 'john', lastname: 'smith',
keywords: ["HTML", "CSS", "JavaScript", "jQuery", "Photoshop"]
},
{firstname: 'pab', lastname: 'due',
keywords: ["Ruby on Rails", "PostgreSQL", "AngularJS", "Node.js"]
},
{firstname: 'bob', lastname: 'rand', keywords: ["java", "php", "test", "jira"]
}
];
});
答案 0 :(得分:4)
在您的ng-repeat
中,您在关键字输入后没有过滤 - 您错过了它。只需将其包括如下:
<div ng-repeat="user in users | filter:userSearch | filter:{ keywords: keyword }">
答案 1 :(得分:0)
你只需要在第二个输入上添加相同的ng-model:
ng-model="userSearch"
<body ng-controller='myCtrl'>
<div>
<div>
<input type="text" placeholder="username search" ng-model="userSearch">
</div>
<br>
<div>
<input type="text" placeholder="keyword search" ng-model="userSearch">
</div>
</div>
希望能帮助你好运。