Angularjs - 动态ng重复表达式

时间:2014-07-17 09:56:06

标签: javascript angularjs

我想创建一个动态页面,根据某些方面显示一个列表或另一个列表,两个数组都有不同的变量名称。我尝试使用某些东西来进行动态ng-repeat表达,但没有成功。

有人有什么建议吗?我做了一个小提琴来解释我需要什么。

<div ng-repeat="item in itemsToShow" >
    <!--THIS IS THE EXPRESSION THAT I WANT DYNAMIC-->
 {{item.name}}, {{item.title}}

[小提琴] http://jsfiddle.net/eTTZj/867/

2 个答案:

答案 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>