【发布时间】:2016-07-12 11:03:03
【问题描述】:
我有一个如下所示的 JSON 提要:
[{
"title":"Post 1",
"categories":[1]
},{
"title":"Post 2",
"categories":[12,123]
},{
"title":"Post 3",
"categories":[123]
}]
我希望能够按“类别”和“标题”对其进行过滤,如下所示:
<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”和“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>
【问题讨论】:
-
不是重复的,因为他正在使用一个对象进行过滤,并且只想检查一个属性是否完全匹配。
标签: angularjs multidimensional-array filter