Angularjs 下拉式角度滤波器

Angularjs 下拉式角度滤波器,angularjs,django,python-2.7,user-interface,angularjs-scope,Angularjs,Django,Python 2.7,User Interface,Angularjs Scope,我是angular的新手,我正在尝试构建基本的搜索+过滤功能 我可以让搜索工作,但我在过滤独特技能方面有困难(本例中为1,2,3) 我尝试使用“ng click”并调用自定义函数,但没有得到任何解决方案 下面是我的代码示例: 运动 var-app=angular.module(“app”,[]); 应用程序控制器('person',['$scope',函数($scope){ $scope.players=[{“name”:“commonABC”,“skill”:1},{“name”:“com

我是angular的新手,我正在尝试构建基本的搜索+过滤功能

我可以让搜索工作,但我在过滤独特技能方面有困难(本例中为1,2,3) 我尝试使用“ng click”并调用自定义函数,但没有得到任何解决方案

下面是我的代码示例:


运动
var-app=angular.module(“app”,[]);
应用程序控制器('person',['$scope',函数($scope){
$scope.players=[{“name”:“commonABC”,“skill”:1},{“name”:“commonXYZ”,“skill”:3},{“name”:“SAMEqwe”,“skill”:1},{“name”:“SAMEjkl”,“skill”:2}]
$scope.search=函数(行){
return(angular.lowercase(row.name).indexOf(angular.lowercase($scope.player|u filter)| |“”)!=-1);
};
}]);
1.
2.
3.


名称是:{{player.name}1)您的变量“search”总是空的,因为您忘记将其设置为选择列表中的ng模型

将选择标记替换为

<select ng-model="search">

2) 如下所示设置自定义数字过滤器

myApp.filter('numFilter', function() {
    return function(input, number) {
        if(!number) return input;
        var tmp = [];
        for (var i = 0; i < input.length; i++) {
            if (input[i].skill == number) tmp.push(input[i]);
        }
        return tmp;
    }
}); 
myApp.filter('numFilter',function(){
返回函数(输入、编号){
如果(!number)返回输入;
var tmp=[];
对于(变量i=0;i
并将您的ng repeat更改为

<div ng-repeat="player in players | numFilter:search  | filter:player_filter">


工作

这将在我的玩家列表中搜索1,2,3字符串,但我想搜索特定技能。例如,选择1将搜索所有技能1,而不是技能11(如您的示例中所示)这里的任何内容?这很酷,但我想让文本框和下拉框都工作,我尝试了另一个文本框自定义功能,但没有工作,新的过滤器是否不能与您的过滤器连接[Ex:numFilter:search | textFilter:textsearch???]非常好,非常感谢,请告诉我是否可以一次生成多个类似numFilter的功能?当然可以