我有一个ng-repeat
,我正在尝试对嵌套属性进行过滤。例如,如何job:title
在以下集合中对嵌套的进行过滤:
{
"name":"Bob",
"job": {
"title":"farmer",
"difficulty":"medium"
}
},
{
"name":"Sue",
"job": {
"title":"fisher",
"difficulty":"hard"
}
},
{
"name":"Joe",
"job":{
"title":"smith",
"difficulty":"expert"
}
}
我有一个ng-repeat
在每次迭代中使用嵌套值的。
<tr ng-repeat="item in items | filter:myFilter ">
<td>{{ item.user.name }}</td>
<td>{{ item.item_name.value }}</td>
</tr>
我希望多个过滤器对这些值中的每一个都独立起作用。我似乎无法弄清楚语法:
<tr>
<td><input type="text" placeholder="Filter by User name" ng-model="myFilter.item.user.name"/></td>
<td><input type="text" placeholder="Filter by Item name" ng-model="myFilter.item.item_name.value"/></td>
</tr>
编辑:json对象的示例
{ "items":[
{
"item_id":{
"name":"item_id",
"inputType":null,
"alias":"item id",
"required":null,
"locked":true,
"viewable":null,
"groupNames":[],
"priority":null,
"validationRules":null,
"value":4,
"valueSet":null,
"in":null
},
"user_id":{
"name":"user_id",
"inputType":null,
"alias":"user id",
"required":null,
"locked":true,
"viewable":null,
"groupNames":[],
"priority":null,
"validationRules":[
"in:"
],
"value":2,
"valueSet":null,
"in":null
},
"item_name":{
"name":"item_name",
"inputType":"String",
"alias":"name",
"required":true,
"locked":null,
"viewable":true,
"groupNames":[],
"priority":null,
"validationRules":[
"string",
"required"
],
"value":"swd1",
"valueSet":null,
"in":null
},
"item_type":{
"name":"item_type",
"inputType":null,
"alias":"item type",
"required":null,
"locked":true,
"viewable":null,
"groupNames":[],
"priority":null,
"validationRules":null,
"value":"sword",
"valueSet":null,
"in":null
},
"item_category":{
"name":"item_category",
"inputType":null,
"alias":"item category",
"required":null,
"locked":true,
"viewable":true,
"groupNames":[
"profile",
"category"
],
"priority":null,
"validationRules":null,
"value":"weapon",
"valueSet":{
"values":[
"weapon",
"protection"
],
"selectLimit":1
},
"in":"weapon,protection,"
},
"item_weight":{
"step":null,
"isInteger":null,
"unitName":"lbs",
"name":"item_weight",
"inputType":"number",
"alias":"weight",
"required":true,
"locked":null,
"viewable":true,
"groupNames":[
"profile"
],
"priority":null,
"validationRules":[
"numeric",
"min:0",
"max:99",
"required"
],
"value":1,
"valueSet":null,
"in":null
},
"user":{
"id":2,
"name":"asdf",
"email":"",
"created_at":"2016-01-01 04:49:49",
"updated_at":"2016-02-24 03:48:21"
},
"images":[],
"reviews":[
{
"rev_id":5,
"reviewable_type":"App\\Models\\ItemTaxonomy\\Item",
"reviewable_id":4,
"created_at":"2016-02-29 00:51:42",
"updated_at":"2016-02-29 00:51:42"
}
]
}
]
}
分解为像我这样的假人:
每个过滤器输入元素都有其自己的ng-model
值:
<tr>
<td><input ng-model="nameSearch" type="text" placeholder="filter"/></td>
<td><input ng-model="jobSearch" type="text" placeholder="filter"/></td>
</tr>
将过滤器应用于ng-repeat时,迭代对象的json是键(在之前:
),而ng-model项(在上面定义)是值(在之后:
):
filter:{json.nested.item:nameSearch, different.nested.item:jobSearch}
应用:
<tr ng-repeat="item in items | filter:{name:nameSearch,job.title:jobSearch}">
<td>{{item.name}}</td>
<td>{{item.job.title}}</td>
</tr>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句