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];
};