只是想知道你是否可以使用另一个过滤器数组过滤现有数组。
所以说我们原来的json是:
[
{
"bookname": "harryporter",
"year": "2000",
"author":"J. K. Rowling"
},
{
"bookname": "Sleepless",
"year": "2003",
"author":"Connie Ann Michael"
},
{
"bookname": "No man's land",
"year": "1993"
"author":"Harold Pinter"
}
];
过滤器阵列:
[
"year":"1993"
"bookname":"No man"
]
还有一种方法可以在编辑输入时动态地将元素添加到数组中,也许键入文本?
例如:
输入
<div>
<input type="text" ng-model={{ filterArray.insert("bookname":"value") }}>Book Name
</div>
过滤
<div ng-repeat="books in originalJson | filter: filterArray">
{{books.author}}
</div>
我希望我已经足够解释了我的问题,欢呼声
答案 0 :(得分:1)
如果要按多个值过滤,可以传入过滤器对象 每个键对应一个字段名称,每个值根据相应的键过滤项目。
Book name: <input type="search" ng-model="filterObj.bookname" />
Year: <input type="search" ng-model="filterObj.year" />
<div ng-repeat="book in books | filter:filterObj">...</div>
另请参阅此 short demo 。
如果您想让用户动态指定要过滤的字段,您也可以这样做(虽然这不是很常见的做法):
Filter by:
<input type="search" ng-model="dynamicField"
placeholder="Field to filter by" />
<input type="search" ng-model="filterObj[dynamicField]"
placeholder="Value to filter by" />
<div ng-repeat="book in books | filter:filterObj">...</div>