Javascript 如何在AngularJS中创建动态过滤器?

Javascript 如何在AngularJS中创建动态过滤器?,javascript,angularjs,Javascript,Angularjs,如何在AngularJS中进行动态过滤。我试过了,但没用 但是如果我给字段名static,比如 data = {key:0, Name:"Arun", key:1, Name:"Ajay", key:3, Name:"Ashok"} function dynamicfilter(data, fieldName, filtervalue){ $filter('filter')(data, { fieldName: filtervalue }); } 它起作用了。我可以知道如何在Angu

如何在AngularJS中进行动态过滤。我试过了,但没用

但是如果我给字段名static,比如

data = {key:0, Name:"Arun", key:1, Name:"Ajay", key:3, Name:"Ashok"}

function dynamicfilter(data, fieldName, filtervalue){
    $filter('filter')(data, { fieldName: filtervalue });
}

它起作用了。我可以知道如何在AngularJS中设置控制器内部的动态字段过滤器吗?

要使用动态属性名称,请尝试使用带有方括号的属性访问器,如
obj[propertyName]=value

 function dynamicfilter(data, filtervalue){
        $filter('filter')(data, { Key: filtervalue });
    }
从ES2015开始,您还可以使用。但这可能不适用于所有浏览器:

function dynamicfilter(data, fieldName, filtervalue){
    var filter = {};
    filter[fieldName] = filtervalue;
    $filter('filter')(data, filter);
}

使用另一种语法可以执行以下操作:

 $filter('filter')(data, { [fieldName]: filtervalue });

结果:
{myField:'myValue'}

您可以使用这样的东西


{{app1.name}
{{app1.login}

键入:
dynamicfilter()
中的
Key
应该是
Key
,全部小写。我想Suresh要问的是如何传入属性名来动态过滤该属性上的一组对象。在
{[fieldName]:filtervalue}
中,像
[fieldName]
这样的动态键可以工作吗?我怀疑that@PankajParkar这是ES2015的一个新功能
计算属性名
,我还添加了一个指向mdn的链接以供参考,请在这里查看:OMG!!太好了。。我用C#的方式思考:(+1)
var filterData = {}, key = 'myField', value = 'myValue';
filterData[key] = value;