Javascript 如何在angularJS中将forEach映射为手风琴
目前,我正在尝试使用angularJS中的forEach方法映射2个对象,并在手风琴中显示它们。我并没有真正得到我想要的结果…它并没有真正过滤或吐出我想要的html中的正确数据 这是我到目前为止所拥有的 HTML: JSON值:Javascript 如何在angularJS中将forEach映射为手风琴,javascript,angularjs,foreach,accordion,Javascript,Angularjs,Foreach,Accordion,目前,我正在尝试使用angularJS中的forEach方法映射2个对象,并在手风琴中显示它们。我并没有真正得到我想要的结果…它并没有真正过滤或吐出我想要的html中的正确数据 这是我到目前为止所拥有的 HTML: JSON值: $scope.otherFees = [{'name': 1, 'text': 'ok', 'amount': 2}, {'name': 2, 'text': 'hello', 'amount': 3}, {'name': 3, 'text': 'cool', 'amo
$scope.otherFees = [{'name': 1, 'text': 'ok', 'amount': 2}, {'name': 2, 'text': 'hello', 'amount': 3}, {'name': 3, 'text': 'cool', 'amount': 3}]
$scope.fees = [
{
'headingName': 'firstHeader',
'feeBag': [
{'name': 1}
]
},
{
'headingName': 'secondHeader',
'feeBag': [
{'name': 2}
]
},
{
'headingName': 'thirdHeader',
'feeBag': [
{'name': 3}
]
}
]
我只是有点纠结于下一步该去哪里……似乎我把它设置好了,按标题名对值进行分组,并将各个集合显示在行中
感谢所有帮助:D在内部添加另一个循环,以检查
$scope的每个值。其他费用
项目:
angular.forEach($scope.fees, function(value, key) {
angular.forEach(value.feeBag, function(value2, key2) {
angular.forEach($scope.otherFees, function(value3, key3){
if (value.feeBag[key2].name === value3.name) {
value.feeBag[key2].text = value3.text;
value.feeBag[key2].amount = value3.amount;
return value.feeBag[key2];
} else {
// remove the ones that dont belong
// value.feeBag.splice(key, 1);
}
})
});
});
看一看这张照片。我已经更新了。我希望这就是你想要的。试着将
ng if=“fee.feeBag.length”
更改为ng if=“fee.feeBag.length>0”
标题工作正常……其他的东西都不好用。你是想用引导手风琴还是其他什么?引导程序使用带有面板类的div标记将其转换为accordios。accordios本身工作正常……我认为是foreach过滤没有正常工作。我没有使用过太多角度标记,而且我在今天之前从未使用过自定义Accordion标记。我只是想帮忙。我只是把你的代码放到一个JSFIDLE中,看看我们是否能解决这个问题。如果我犯了任何错误,请将其修改为您的代码:
$scope.otherFees = [{'name': 1, 'text': 'ok', 'amount': 2}, {'name': 2, 'text': 'hello', 'amount': 3}, {'name': 3, 'text': 'cool', 'amount': 3}]
$scope.fees = [
{
'headingName': 'firstHeader',
'feeBag': [
{'name': 1}
]
},
{
'headingName': 'secondHeader',
'feeBag': [
{'name': 2}
]
},
{
'headingName': 'thirdHeader',
'feeBag': [
{'name': 3}
]
}
]
angular.forEach($scope.fees, function(value, key) {
angular.forEach(value.feeBag, function(value2, key2) {
angular.forEach($scope.otherFees, function(value3, key3){
if (value.feeBag[key2].name === value3.name) {
value.feeBag[key2].text = value3.text;
value.feeBag[key2].amount = value3.amount;
return value.feeBag[key2];
} else {
// remove the ones that dont belong
// value.feeBag.splice(key, 1);
}
})
});
});