Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs ng在对象上重复创建下拉列表_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Angularjs ng在对象上重复创建下拉列表

Angularjs ng在对象上重复创建下拉列表,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我的对象看起来像: var models = { "Test1":{ "name":"Test1", "members": { "T1":{//some more properties}, "T2":{//some more properties} } } "Te

我的对象看起来像:

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}
              }
      }
}
如果用户选择了对象模型的属性,我想在下拉列表中显示所选属性的members属性。 如果用户选择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>

编辑:更改答案以符合要求。

抱歉,无法。架构师不允许我。它可以工作,但正如我所说的,软件架构师不允许我更改对象。前面评论中的小提琴使用的是您的对象结构。如果它适合你,你能再检查一下吗?
$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];
};