使用angularJS的ng-repeat和ng-model进行动态多列过滤
Dynamic multi-column filtering with angularJS ng-repeat and ng-model
我已经弄清楚静态(硬编码)多列过滤;这里。
<p><input type="text" ng-model="s1"></p>
<p><input type="text" ng-model="s2"></p>
<ul>
<li ng-repeat="x in names | filter:{name:s1} | filter:{country:s2} | orderBy:'country'">
{{ (x.name | uppercase) + ', ' + x.country }}
</li>
</ul>
但是,我希望能够基于模型动态地创建文本框过滤器(即。对于任意#列)。看起来应该是这样的,但是文本框什么也没做。
<div ng-repeat="n in names">
<input type="text" ng-model="n.column" >
</div>
<ul>
<li ng-repeat="x in names | filter:{name:name} | filter:{country:country} | orderBy:'country'">
{{ (x.name | uppercase) + ', ' + x.country }}
</li>
</ul>
我到处都找过了,我很难相信这样的事情没有发生过[经常被我的搜索发现]。
DEMO
<div ng-repeat="n in headers">
<input type="text" ng-model="filters[n.column]" >
</div>
<ul>
<li ng-repeat="x in names | filter:{name:filters.name} | filter:{country:filters.country} | orderBy:'country'">
{{ (x.name | uppercase) + ', ' + x.country }}
</li>
</ul>
控制器function namesController($scope) {
$scope.names = [
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}
];
$scope.filters = {};
$scope.headers = [
{column: "name"},
{column: "country"}
];
}
相关文章:
- 如何在vis.js中动态过滤链接
- 基于动态复选框过滤数据 角度 JS中的类别
- 如何使用 PHP 动态过滤类别
- 基于动态条件的高效阵列过滤
- 使用 AJAX 响应和 jQuery 动态生成、搜索和过滤表
- 使用 JavaScript 动态过滤 HTML 表的行
- 如何动态过滤jQuery移动选择表单
- Django动态过滤表单
- 实时搜索(输入时动态过滤结果)- Bootstrap, jQuery
- 重构ValueConverter以动态过滤
- 绑定html表单与XSL动态过滤xml文件
- 斑马条纹在动态过滤和使用jquery时失去位置:even
- 在可折叠jquery-mobile中添加可动态过滤的控件
- jQuery自动完成如何动态过滤响应
- JS Array.filter与动态过滤标准
- 在html表中动态过滤搜索结果
- 如何纯粹使用 AJAX 实现动态过滤并仍然保留可用的历史记录
- 动态过滤可见Div元素
- 为特定文件类型动态过滤添加的文件上传字段
- ExtJS动态过滤ComboBox