Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AngularJS将过滤器动态添加到表中特定的选定属性_Angularjs_Filter_Angularjs Ng Repeat_Angular Filters - Fatal编程技术网

使用AngularJS将过滤器动态添加到表中特定的选定属性

使用AngularJS将过滤器动态添加到表中特定的选定属性,angularjs,filter,angularjs-ng-repeat,angular-filters,Angularjs,Filter,Angularjs Ng Repeat,Angular Filters,我有两个下拉列表,一个用于“id”、“name”等字段,另一个用于“uppercase”、“contains”、“endWith”等过滤器。过滤器值是用angularjs编写的自定义过滤器名称。我有一个搜索文本框,用户在其中键入所选字段和属性的搜索项 <div> <label>Filter</label> <select ng-model="selectedFilter"> <option value="upp

我有两个下拉列表,一个用于“id”、“name”等字段,另一个用于“uppercase”、“contains”、“endWith”等过滤器。过滤器值是用angularjs编写的自定义过滤器名称。我有一个搜索文本框,用户在其中键入所选字段和属性的搜索项

<div>
    <label>Filter</label>
    <select ng-model="selectedFilter">
        <option value="uppercase">Uppercase</option>
        <option value="startsWithLetter">Starts With</option>
    </select>
</div>
<div>
    <label>Fields</label>
    <select ng-model="selectedField">
        <option value="Id">Id</option>
        <option value="name">startsWithLetter</option>
    </select>
</div>

<input type="text" ng-model="search"/>
}))

很少有像这样的自定义过滤器

app.filter('startsWithLetter', function () {
return function (items, letter) {
    var filtered = [];
    var letterMatch = new RegExp(letter, 'i');
    for (var i = 0; i < items.length; i++) {
        var item = items[i];
        if (letterMatch.test(item.name.substring(0,1))) {
            filtered.push(item);
        }
    }
    return filtered;
};
});
我正在努力使用一种语法来编写ng repeat,以便过滤器仅应用于选定的属性和具有该搜索词的选定过滤器。若未选择任何内容,则表格将显示常规数据

 <ul>
    <li ng-repeat="friend in friends | filter:{syntax }">
       {{ friend.id}} , {{ friend.name }}
    </li>
</ul>
  • {{friend.id},{{friend.name}

我正在实现这个特性。需要帮助吗?

试试“朋友中的朋友”开头的字母:“A”。。。但如果您需要筛选器的可变列表,可以创建类似“friend in friends | myVariableFilter:myArgs”的内容,并使用条件参数填充“myArgs”。筛选器将基于选定的属性。假设用户选择字段:name和筛选器:startWith,然后在搜索词中键入一个如何映射该字段。{id:1,名字:'Andrew'},{id:4,名字:'Alice'}我会做一个jsbin,回答是谢谢你等着
$scope.friends = [
    {
        id: 1,
        name: 'Andrew'
    },
    {

        id: 2,
        name: 'Will'
    },
    {

        id: 3,
        name: 'Mark'
    },
    {

        id: 4,
        name: 'Alice'
    },
    {

        id: 5,
        name: 'Todd'
    }];
 <ul>
    <li ng-repeat="friend in friends | filter:{syntax }">
       {{ friend.id}} , {{ friend.name }}
    </li>
</ul>