我有一个JSON提要,看起来像这样:
[{
"title":"Post 1",
"categories":[1]
},{
"title":"Post 2",
"categories":[12,123]
},{
"title":"Post 3",
"categories":[123]
}]
我希望能够通过"类别"one_answers"标题"来过滤它,就像这样:
<select ng-model="search.categories">
<option value="">Categories</option>
<option value="1">1</option>
<option value="12">12</option>
<option value="123">123</option>
</select>
<input ng-model="search.title">
<ul>
<li ng-repeat="post in posts | filter:search">
{{post.title}} - {{post.categories}}
</li>
</ul>
标题搜索工作正常。但对于类别,搜索"1"匹配"1"、"12"one_answers"123"(同样,搜索"12"匹配"12"或"123")。有没有办法将搜索结果限制为完全匹配?我假设要做到这一点,"类别"数组必须以某种方式进行拆分,这样每个ID才能单独匹配。
另一个选项:我可以根据嵌套子循环的内容过滤父循环吗?这是代码:
<ul>
<li ng-repeat="post in posts | filter:search">
{{post.title}}
<ul>
<li ng-repeat="category in post.categories">
{{category}}
</li>
</ul>
</li>
</ul>
您可以在另一个冒号后面添加一个比较函数或简单地添加true
,以使angular只接受精确匹配。您还可以通过添加另一个管道来使用多个过滤器。它应该看起来像这样:
<li ng-repeat="post in posts | filter : search.categories : true | filter : search.title">
点击此处查看更多信息:https://docs.angularjs.org/api/ng/filter/filter