Angularjs使用父数据的单键多值进行筛选
Angularjs Filter with single key multiple values of parent data
我是Angularjs的新手。我们可以按多个键值进行筛选,但这里我需要按单个值进行筛选,但是我的父数据包含多个值。像
控制器内:
$scope.movies = [{name:'aa', criteria:'SECURITY TYPE:Stocks|GEOGRAPHY:US'},
{name:'bb', criteria:'TRADING STRATEGY:Monthly|YIELD:Mid,Blend'},
{name:'cc', criteria:'SECURITY TYPE:Stocks|YIELD:Mid,Blend'},
{name:'dd', criteria:'MARKETCAPITALIZATION:Mega|VOLATILITY:Low'}];
$scope.filterByProperties = function (data) {
return $scope.filter[data.criteria] || noSubFilter($scope.filter);
};
function noSubFilter(subFilterObj) {
for (var key in subFilterObj) {
if (subFilterObj[key]) return false;
}
return true;
}
视图文件:
<label>SECURITY TYPE</label>
<input type="checkbox" ng-model="filter['Stocks']"> Stocks
<label>Yield</label>
<input type="checkbox" ng-model="filter['Mid']"> Mid
但是,作为包含多个值的data.criteria字段,我将如何从复选框中筛选它们?
使用自定义过滤器过滤掉数据。
<label>SECURITY TYPE</label>
<input type="checkbox" ng-model="criteria.stocks"> Stocks</input>
<label>Yield</label>
<input type="checkbox" ng-model="criteria.mids"> Mid</input>
<ul>
<li ng-repeat="m in movies | typeFilter: criteria">
{{m.name}} {{m.criteria}}
</li>
添加过滤器
.filter('typeFilter', function($filter) {
return function(input, criteria) {
console.log(criteria);
console.log(input);
var data = input;
if(criteria && !criteria.mids && !criteria.stocks){
return input;
}
if(criteria.stocks){
console.log(data);
data = $filter('filter')( data, {criteria:'Stocks'} );
console.log(data);
}
if(criteria.mids){
console.log(data);
data = $filter('filter')(data, {criteria:'Mid'} );
console.log(data);
}
return data;}});
我在这里创建了一个工作示例http://codepen.io/mkl/pen/wGOKJo
相关文章:
- 如何使用单个表单填写多个表单
- Angularjs使用父数据的单键多值进行筛选
- 为表单发送多个页眉或多个提交
- 将一个对象转换为一个单键对象数组(带下划线?)
- 根据文本框中键入的文本筛选单选按钮列表
- 单击多个复选框
- 一个表单包含多个提交操作
- Jquery Ajax表单提交:多个表单-相同的按钮id's
- JS展开单击多个事件
- JS- on单击多个内容
- 使用jquery提交表单,该表单具有多个提交按钮,无需单击触发器
- 用户单击多个复选框时的 Jqgrid 警报消息
- JQuery 表单将多个选择、分组的选定值提交到 csv 数组
- jQuery ajax 表单提交多次
- 使用 Ajax 发送的表单包含多参数和 A href
- 通过使用 jQuery 单击多个锚点中的锚点来获取 HREF 值
- where 筛选器键中的 Backbonejs 变量
- 当用户单击按钮时显示内容.用户可以单击多次
- ASP.NET 网格视图 - 允许从控制键按下和鼠标左键一起单击多选
- 在mac中按住Ctrl键并单击鼠标左键(多选)