angularjs - 对对象进行 ng-repeat 以创建下拉菜单
问题描述
我的对象看起来像:
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}
}
}
}
如果用户选择对象模型的属性,我想在下拉列表中显示模型对象的选定属性的成员属性。例如。如果用户选择 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];
};
编辑:更改答案以符合要求。
推荐阅读
- android - 无法在此模型类中的颤振中附加列表
- rust - Why rust use rsi to pass parameter to fn pointer
- php - php youtube api 评论列表滚动上的jQuery数据
- python - 如何从 python 脚本创建多个 PlantUML 图?
- mongodb - 具有匹配和组的 MongoDB 聚合不起作用
- java - Java 类不能覆盖具有包含接口的方法签名的抽象类中的方法
- python - 使用 ElementTree 访问 xml 文件中的元素和标签时获取空列表
- postgresql - 在 Postgresql 中计数不重复
- php - Docker-compose 不会保持基础容器运行
- apache-spark - 使用 Spark 数据集为线性回归设置 X1-Xn 和 Y