Angular评估变量名称

时间:2016-02-23 16:06:01

标签: javascript angularjs

我有以下循环:

Author

我在这里循环播放:

$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> 内的{{ slug }}

3 个答案:

答案 0 :(得分:0)

使用javascript&#39; s bracket notation访问具有密钥名称的媒体资源。您可以绑定到控制器函数的结果以获取正确的数组。所以你的标记可能如下所示:

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

和javascript:

$scope.getValuesFromSlug = function (slug) {
    return $scope[slug];
}

Demo on plunker

答案 1 :(得分:0)

使用可以角度评估INNER JOIN ( SELECT inv.item_key --, s.price_key , MAX(inv.last_receive_cost / inv.last_receive_units_case) AS [unit_cost] FROM inventory inv INNER JOIN stores s on inv.location_key = s.store_key WHERE inv.on_hand_inventory_qty > 0 AND inv.last_receive_cost > 0 AND inv.last_receive_units_case > 0 AND s.price_key = 29 GROUP BY inv.item_key -- , s.price_key ) t ON r.item_key = t.item_key and r.price_key = 29 方法,它将解决您的问题

$eval()

正如@ryanyuyu所说,<div ng-repeat="slug in loop"> <div ng-repeat="val in $eval(slug)">{{ val }}</div> </div> $scope.loopone应该是数组

$scope.looptwo

答案 2 :(得分:0)

如果您要在视图中使用树形结构,那么最简单的方法就是将它作为控制器中的树。

示例:

在控制器中:

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

在视图中:

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

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

你这样做的方式,尝试使用常量变量就好像它们是动态创建的一样,会引导你走上意大利面条代码和不可扩展性的道路。