带有嵌套json的Angularjs过滤器
问题描述:
我在使用下面的json对象过滤我的表时遇到了问题。 它过滤了一些关键值,但是如果我的json被嵌套,它将无法工作。 我相信我做错了什么和愚蠢的。带有嵌套json的Angularjs过滤器
继承人一样的小提琴。下面https://jsfiddle.net/pnypxhj8/1/
是我的JSON对象:
[
{
"EmpId": "3901", //----> Filter works on this
"SubmitDate": "30/04/2017", //----> Filter works on this
"Employee": "John", //----> Filter works on this
"ProdRequest": [{
"ProdName": "Mac Air laptop - Apple",
"ManagersApproval": {
"Status": "Approved", //----> But Doesnt works on this
"ManagersDetails": [{
"Name": "Steve Rock",
"Email": "[email protected]"
},
{
"Name": "Mary Nuts",
"Email": "[email protected]"
}
],
"Comments": ""
},
"AdminApproval": {
"Status": "Pending",
"AdminDetails": [{
"Name": "Hardy Lee",
"Email": "[email protected]"
},
{
"Name": "Moss Grant",
"Email": "[email protected]"
}
],
"Comments": ""
},
"RequestStatus": "Pending"
},
{
"ProdName": "Note Book - Large",
"ManagerApproval": {
"Status": "Approved",
"Approver": [{
"Name": "Jet Lee",
"Email": "[email protected]"
}],
"Comments": "Approved by Jet Lee"
},
"AdminApproval": {
"Status": "Approved",
"AdminDetails": [{
"Name": "Hardy Lee",
"Email": "[email protected]"
},
{
"Name": "Moss Grant",
"Email": "[email protected]"
}
],
"Comments": ""
},
"RequestStatus": "Completed"
}
]
},
{
"EmpId": "550",
"SubmitDate": "22/04/2017",
"Employee": "Mary Kom",
"ProdRequest": [{
"ProdName": "Seagate Harddisk 500TB",
"ManagersApproval": {
"Status": "Approved",
"ManagersDetails": [{
"Name": "Steve Rock",
"Email": "[email protected]"
}
],
"Comments": ""
},
"AdminApproval": {
"Status": "Approved",
"AdminDetails": [{
"Name": "Hardy Lee",
"Email": "[email protected]"
},
{
"Name": "Moss Grant",
"Email": "[email protected]"
}
],
"Comments": ""
},
"RequestStatus": "Approved"
},
{
"ProdName": "Note Book - Large",
"ManagerApproval": {
"Status": "Approved",
"Approver": [{
"Name": "Jet Lee",
"Email": "[email protected]"
}],
"Comments": "Approved by Jet Lee"
},
"AdminApproval": {
"Status": "Approved",
"AdminDetails": [{
"Name": "Hardy Lee",
"Email": "[email protected]"
},
{
"Name": "Moss Grant",
"Email": "[email protected]"
}
],
"Comments": ""
},
"RequestStatus": "Completed"
}
]
}
]
答
第一:你有对象属性一个错字。您的筛选器上有ManagerApproval
,但数据中包含ManagersApproval
(含S)属性。
二:过滤器应为ng-repeat="a in data.ProdRequest | filter:{ProdName: prodName, ManagerApproval: { Status: managerApproval }}"
这里的工作小提琴:https://jsfiddle.net/pnypxhj8/3/
你能解释一下它的数据是没有得到映射和你真正想实现什么? –
数据正在映射..但它没有得到过滤 “状态”:“已批准”,// ---->但是如果答案是正确的,您是否可以标记为已接受但不适用于此 – nipiv
@nipiv? –