如何按用户名过滤
how to filter by username?
我有一个Json对象。
[{
"id":"1",
"username": "vishnu",
"FromDate": "Wed Mar 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "fixing bugs",
"time": "1"
}, {
"id":"2",
"username": "seenu",
"FromDate": "Wed Mar 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "working on ui",
"time": "2"
}, {
"id":"3",
"username": "sam",
"FromDate": "Wed Mar 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "bigiron",
"task": "working on api",
"time": "5"
},
{
"id":"4",
"username": "vishnu",
"FromDate": "Wed Mar 03 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "timetracker",
"task": "ui designing",
"time": "1"
},{
"id":"5",
"username": "arun",
"FromDate": "Wed Jan 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "fixing bugs",
"time": "1"
}, {
"id":"6",
"username": "seenu",
"FromDate": "Wed Mar 01 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "working on ui",
"time": "2"
}, {
"id":"7",
"username": "sam",
"FromDate": "Wed Mar 03 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "working on api",
"time": "6"
},
{
"id":"8",
"username": "vishnu",
"FromDate": "Wed Mar 03 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "timetracker",
"task": "ui designing",
"time": "4"
}]
我想制作一个自定义过滤器来过滤特定用户(根据用户名),并获取过滤数据的长度。示例,用户名:毗湿奴,我想过滤并检查用户名毗湿奴有多少对象。像这样,我想为所有用户获得。
我创建了一个自定义过滤器,例如(键入的代码,不正确),
app.filter('myfilter',function(){
return function(mydata){
var filterd data=[];
angular.foreach(mydata,function(s){
if(s.name==$scope.model)
{
filtereddata.push(s)
}
})
return filtereddata;
}
});
现在我该怎么办?
代替filtereddata,你可以返回filtereddata.length 对吗?
使用
s.name.indexOf($scope.model)>-1
而不是
s.name==$scope.model
对于"赞"搜索或"包含"搜索
基于注释创建的示例
.HTML
<body ng-app="myApp">
<div ng-controller="Ctrl">Search:
<input ng-model="searchText">
<div ng-repeat="(k,v) in items | myFilter:searchText">
{{v}}
</div>
</div>
</body>
.JS
var myApp = angular.module('myApp', []);
myApp.controller('Ctrl', function($scope) {
$scope.items = [{
"id": "1",
"username": "vishnu",
"FromDate": "Wed Mar 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "fixing bugs",
"time": "1"
}, {
"id": "2",
"username": "seenu",
"FromDate": "Wed Mar 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "working on ui",
"time": "2"
}, {
"id": "3",
"username": "sam",
"FromDate": "Wed Mar 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "bigiron",
"task": "working on api",
"time": "5"
}, {
"id": "4",
"username": "vishnu",
"FromDate": "Wed Mar 03 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "timetracker",
"task": "ui designing",
"time": "1"
}, {
"id": "5",
"username": "arun",
"FromDate": "Wed Jan 02 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "fixing bugs",
"time": "1"
}, {
"id": "6",
"username": "seenu",
"FromDate": "Wed Mar 01 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "working on ui",
"time": "2"
}, {
"id": "7",
"username": "sam",
"FromDate": "Wed Mar 03 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "createwhimsy",
"task": "working on api",
"time": "6"
}, {
"id": "8",
"username": "vishnu",
"FromDate": "Wed Mar 03 2016 10:56:45 GMT+0530 (India Standard Time)",
"selectedProject": "timetracker",
"task": "ui designing",
"time": "4"
}]
});
myApp.filter('myFilter', function() {
return function(items, search) {
var result = [];
angular.forEach(items, function(value, key) {
angular.forEach(value, function(value2, key2) {
if (value2 === search) {
result.push(value2);
}
})
});
return result;
}
});
工作 Jsfiddle 演示
您可以通过这种方式简单地使用自定义过滤器:过滤器名称加上过滤器后缀。
然后在控制器中简单地使用它作为:
function myCtrl($scope, filterFilter) {
var filteredRes = filterFilter(data, searchQuery);
}
现在filteredRes.length
为您提供与搜索查询匹配的结果长度。
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- 从远程脚本获取用户IP
- Facebook API过滤用户活动,只显示指定的好友
- 根据页面标题过滤活跃用户-谷歌分析
- 根据用户输入的leaflet.js过滤标记
- Rally App SDK 2.0:按用户权限过滤用户存储
- KnockoutJS - 过滤用户输入
- 基于用户提供的 ajax 和 django 值进行过滤
- EmberJS 在用户键入时过滤项目数组
- 如何使用用户过滤的关键字在Node.js中执行Twitter API搜索
- 针对用户输入效率进行过滤.还有Stuff
- 自定义列表视图过滤用户输入
- MeteorJS -没有用户系统,如何在客户端过滤数据
- 过滤用户选择在Ionic
- 过滤基于用户选择的JSON嵌套数组
- 基于用户's
- 我如何过滤我的列表结果的用户登录使用angularJS在SharePoint2013
- 如果同一用户的多个tweet是连续的,Jtweets anywhere会过滤它们
- 在嵌套的observableArray中按一个关键字过滤用户
- 过滤掉用户在 javascript 中键入文本时与顺序不匹配的单词