我想创建一个动态页面,根据某些方面显示一个列表或另一个列表,两个数组都有不同的变量名称。我尝试使用某些东西来进行动态ng-repeat表达,但没有成功。
有人有什么建议吗?我做了一个小提琴来解释我需要什么。
<div ng-repeat="item in itemsToShow" >
<!--THIS IS THE EXPRESSION THAT I WANT DYNAMIC-->
{{item.name}}, {{item.title}}
答案 0 :(得分:0)
您可以使用运营商:
<div ng-repeat="item in itemsToShow" >
{{item.name || item.firstname}}, {{item.title || item.titleBig}}
</div>
这将选择列表中的现有属性。
如果许多列表无法实现,您也可以这样做:
<div ng-repeat="item in itemsToShow"></div>
<div ng-repeat="(key, value) in item">
{{key}} : {{value}}
</div>
</div>
答案 1 :(得分:0)
我已更新了您的JSFiddle。如果您想要“动态”,只需对控制器内部的逻辑进行编码,并将$scope.itemsToShow
设置为不同的数组,这样您的视图就无法更改。
像这样:
....
var show_items_2 = true;
/*Whatever you want to do here*/
if(show_items_2) {
$scope.itemsToShow = items2;
} else {
$scope.itemsToShow = items;
}
如果您希望在阵列中包含不同的keys
(&#39;名称&#39;以及&#39; nameBig&#39;),则必须以不同方式访问这些项目(通过(键,值) ))。请参阅此SO question here。
<div ng-repeat="item in itemsToShow"></div>
<div ng-repeat="(key, value) in item">
{{key}} : {{value}}
</div>