ng-repeat 对象以创建下拉列表

ng-repeat on objects to create drop down

我的对象看起来像:

var models = {
      "Test1":{
              "name":"Test1",
              "members":
                  {
                    "T1":{//some more properties},
                    "T2":{//some more properties}
              }
      }
      "Test2":{
              "name":"Test2",
              "members":
                  {
                    "T1":{//some more properties},
                    "T2":{//somemore properties}
              }
      }
}

假设用户选择了一个 属性 的对象 models,我想显示该选择的 属性 模型的成员 属性下拉列表中的对象。 例如。如果用户选择 Test1 属性,下拉列表应填充 T1 和 T2。

如有任何关于问题清晰度的建议,我们将不胜感激。

由于您无法更改您的对象,因此在您的 HTML 中您可以拥有:

<div ng-repeat="model in models">
  <div>
    <p ng-click="toggleVisibility(model.name)">Name: {{model.name}}</p>
    <div ng-repeat="member in model.members" ng-if="model.visibility">
      <p>Member Name: {{getMemberName(model.name, $index)}} </p>
      <p>Member properties: {{getMemberProperties(model.name, $index)}} </p>
    </div>
  </div>
</div>

在你的 AngularJS 控制器上:

$scope.toggleVisibility = function (entry) {
  $scope.models[entry].visibility = !$scope.models[entry].visibility;
};

$scope.getMemberName = function (entry, $index) {
  return Object.keys($scope.models[entry].members)[$index];
};

$scope.getMemberProperties = function (entry, $index) {
  var key = Object.keys($scope.models[entry].members)[$index];
  return $scope.models[entry].members[key];
};

编辑:更改答案以满足要求。