Javascript 如何在angularJS中将forEach映射为手风琴

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

目前,我正在尝试使用angularJS中的forEach方法映射2个对象,并在手风琴中显示它们。我并没有真正得到我想要的结果…它并没有真正过滤或吐出我想要的html中的正确数据

这是我到目前为止所拥有的

HTML:

JSON值:

$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);
        }
      })
    });
  });