Angularjs ng-repeat使用key作为obj的属性名

时间:2016-07-05 11:49:26

标签: javascript angularjs angularjs-ng-repeat

在角度中,我想使用ng-repeat的键作为obj的属性名称

            $scope.datas= {};
            $scope.datas.key1 = 'val1';
            $scope.datas.key2 = 'val2';


             $scope.dictionnary= {};
             $scope.dictionnary['key1']  ='toto';
             $scope.dictionnary['key2']  ='titi';


    <div ng-repeat="(key, value) in datas">
    {{dictionnary[key]}} //does not work!
    </div>

你知道热吗?

2 个答案:

答案 0 :(得分:2)

好的,这可能归结为以下几点:

<强> 1 您也可以将数据用作字典,然后使用1循环( PICK ME

&#13;
&#13;
angular.module('myApp', [])
  .controller('myController', function($scope) {
    $scope.datas = {};
    $scope.datas.key1 = 'val1';
    $scope.datas.key2 = 'val2';


    $scope.dictionnary = {};
    $scope.dictionnary['key1'] = 'toto';
    $scope.dictionnary['key2'] = 'titi';
  })
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp">
  <div ng-controller="myController">
    <div ng-repeat="(key, value) in datas">
      {{dictionnary[key]}} //does not work!
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

2 :你可以使用像@Omri Aharon那样的嵌套ng-repeat显示

答案 1 :(得分:0)

如果要对所有对象执行此操作,则需要2 ng-repeats,一个用于遍历数组,另一个用于从您正在迭代的对象中获取键:

    <div ng-repeat="data in datas">
      <div ng-repeat="(key, value) in data">
        {{key}}
      </div>   
    </div>

请注意,此处您已将对象作为数据,因此如果您解释了问题,我们可能会建议采用不同的方法。

Fiddle