Angularjs 绑定ng重复对象名称不起作用

Angularjs 绑定ng重复对象名称不起作用,angularjs,data-binding,Angularjs,Data Binding,我正在尝试绑定来自父repeat的ng repeat对象名称(请参见“dType.name”),但该名称无法绑定。我尝试了两种方法: (这只是一个片段) **HTML:** (1) {{dType.name} {{dish.dish} {{dish.type} (2) {{dType.name} {{dish.dish} {{dish.type} **Javascript** menuApp.controller('appController',['$scope', 职能($范围){ $sco

我正在尝试绑定来自父repeat的ng repeat对象名称(请参见“dType.name”),但该名称无法绑定。我尝试了两种方法:

(这只是一个片段)

**HTML:**
(1)
{{dType.name}
{{dish.dish}
{{dish.type}
(2) 
{{dType.name}
{{dish.dish}
{{dish.type}
**Javascript**
menuApp.controller('appController',['$scope',
职能($范围){
$scope.dishesTypes=[
{name:'main'},
{名称:'sides'},
{名称:'desserts'}
];
$scope.dValues={main:'main',sides:'sidests',desserts:'desserts'};
$scope.main=//数据库中的一些值;
$scope.sides=//数据库中的一些值;
$scope.desserts=//数据库中的一些值;
}]);

提前感谢您的帮助

您的第二个方法正在尝试迭代字符串。它并不是第二次解析dValues[dType.name]的结果来提供您要查找的对象。要解决这个问题,可以使用$eval将其包装起来,以强制进行另一次评估

<div ng-repeat="dType in dishesTypes">                           
  <span class="small-title" class="separator">{{dType.name}}</span>                       
  <div class="row" ng-repeat="dish in $eval(dValues[dType.name])">               
      <div class="col-md-6">{{dish.dish}}</div>
      <div class="col-md-1">{{dish.type}}</div>                       
  </div>
</div>

{{dType.name}
{{dish.dish}
{{dish.type}
这是一个正在工作的plunker:

您也可以只调用一个函数,然后解析控制器中的所有内容,如下所示:


{{dType.name}
{{dish.type}
{{dish.dish}
$scope.getDistrips=函数(项)
{
返回$scope.$eval($scope.dValues[item]);
}

我看不出您希望dish.dish和dish.type在控制器中来自何处?在第一种方法中,如果在内部ng repeat中将dType.name更改为dType,它将迭代对象的属性。这就是你要找的吗?你好,克雷格,我希望能够遍历$scope.main、$scope.sides和$scope.desserts(这些对象来自服务器,具有“dish”和“type”属性)。这有意义吗?我可以很容易地复制粘贴三次,然后在main中循环“ng repeat=(键,盘)等等。。。但我想让它充满活力,以防出现一种新的类型:)是的,我想我知道你现在在做什么。是的!就是这样!谢谢你,克雷格!伟大的很乐意帮忙。@Teknotica,如果我的回答对你有帮助,你能接受吗?你好,克雷格,我想我就是这么做的(投了赞成票)。我还需要做些什么吗?你可以将答案标记为“已接受答案”,它旁边会有一个绿色的复选标记。我会很感激的,谢谢!
<div ng-repeat="dType in dishesTypes">                           
  <span class="small-title" class="separator">{{dType.name}}</span>                       
  <div class="row" ng-repeat="dish in $eval(dValues[dType.name])">               
      <div class="col-md-6">{{dish.dish}}</div>
      <div class="col-md-1">{{dish.type}}</div>                       
  </div>
</div>
<div ng-repeat="dType in dishesTypes">                           
  <span class="small-title" class="separator">{{dType.name}}</span>                       
  <div class="row" ng-repeat="dish in getDishes(dType.name)">               
      <div class="col-md-6">{{dish.type}}</div>
      <div class="col-md-1">{{dish.dish}}</div>                       
  </div>
</div>

$scope.getDishes = function(item)
{
  return $scope.$eval($scope.dValues[item]);
}