Javascript 角度求值变量名

Javascript 角度求值变量名,javascript,angularjs,Javascript,Angularjs,我有以下循环: $scope.loop = ['loopone','looptwo']; $scope.loopone = {'one', 'two'}; $scope.looptwo = {'three', 'four'}; 我在这里循环: <div ng-repeat="slug in loop"> <div ng-repeat="val in {{ slug }}">{{ val }}</div> </div> {{val}}

我有以下循环:

$scope.loop = ['loopone','looptwo'];

$scope.loopone = {'one', 'two'};
$scope.looptwo = {'three', 'four'};
我在这里循环:

<div ng-repeat="slug in loop">
  <div ng-repeat="val in {{ slug }}">{{ val }}</div>
</div>

{{val}}
如何计算第二个
ng repeat
中的
{{slug}}

使用javascript访问具有键名的属性。您可以绑定到控制器函数的结果以获取正确的数组。因此,您的标记可以如下所示:

<div ng-repeat="slug in loop">
  Slug: {{slug}}
  <div ng-repeat="val in getValuesFromSlug(slug)">{{ val }}</div>
</div>

使用can angular evaluate
$eval()
方法,它将解决您的问题

<div ng-repeat="slug in loop">
  <div ng-repeat="val in $eval(slug)">{{ val }}</div>
</div>

如果你想在你的视图中有一个树结构,那么在你的控制器中也是一个树是最容易的

例如:

在控制器中:

$scope.loops = [
    [1,2,3], [4,5,6]
];
鉴于:

<div ng-repeat="miniloop in loop">
  <div ng-repeat="val in miniloop">{{ val }}</div>
</div>

{{val}}
这非常容易迭代,您可以轻松地从任意深度推送和删除元素(这将立即反映在视图中)


你这样做,试图像使用动态创建的常量变量一样使用常量变量,这将导致你走上一条意大利面代码和不可缩放的道路。

你的编辑完全改变了你的问题。
$scope.loopone
$scope.looptwo
应该是数组吗?这些不是有效的对象。使用索引不是更干净吗
{{val}
@MattLishman yes
$index
非常有用。我不完全确定OP的代码当前处于什么状态。@MattLishman不需要在slug周围加花括号。
ng repeat
迭代器知道它当前处于什么状态。@Harriswenstein说得对。我只是复制了已经存在的代码,并将其替换为$index。
$scope.loops = [
    [1,2,3], [4,5,6]
];
<div ng-repeat="miniloop in loop">
  <div ng-repeat="val in miniloop">{{ val }}</div>
</div>