是否可以根据angularjs中变量的值绑定对象元素

时间:2017-07-25 12:01:32

标签: angularjs

假设我有一个这样的对象:

var myObj = {
    item1:{},
    item2:{},
    item3:{},
    ...
};

我还有另一个变量(例如:itemHolder)可以获得item1item2等值。

我想在视图中绑定对象元素。有没有办法根据我的变量值绑定它?解决方案如下:

{{myObj.[itemHolder]}}

1 个答案:

答案 0 :(得分:2)

假设两个变量都在您的作用域上声明,是的,您可以使用javascript括号表示法来执行此操作:

$scope.myObj = {
    item1: {},
    item2: {},
    item3: {},
    ...
};

$scope.itemHolder = 'item1';

然后你可以插入如下的值:

{{ myObj[itemHolder] }} // {}

工作片段:

angular.module('myApp', [])
  .controller('AppController', function($scope) {

    $scope.myObj = {
      item1: { a: 1 },
      item2: { b: 2 },
      item3: { c: 3 }
    };

    $scope.itemHolder = 'item1';

  });
<div ng-app="myApp" ng-controller="AppController">
  Type the prop name<br>
  <input type="text" ng-model="itemHolder"><br>
  {{ myObj[itemHolder] }}
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.js"></script>