我正在尝试制作通知配置页面。基本上,用户应该能够选择他希望为特定模块接收哪种通知。有3种类型的通知(电子邮件,短信和用户界面)。目前我的数组是这样构建的
$scope.modules= [
{
"id": 1,
"name": "Module1",
"notifications": [
{
"notification": "email"
}
]
},
{
"id": 2,
"name": "Module2",
"notifications": [
{
"notification": "sms"
},
{
"notification": "ui"
}
]
}
];
我试图实现这个观点
问题: 当我尝试重复某个模块的通知时,如果例如{"通知":"电子邮件"}不存在,则该复选框不会保持未选中状态,而是从风景。
有关如何执行ng-repeat的任何想法?感谢
答案 0 :(得分:2)
结构有些不对劲。为什么没有像下面这样的通知的对象数组:
"notifications": [ {"sms": true}, {"email": false}, {"ui": true} ];
然后迭代并设置就好了。
迭代$scope.modules
并且对于每个此类模块,在包装ng-repeat
div中有三个复选框。然后根据notifications
中的通知将其设置为选中/取消选中。
<span>Email</span> <span>Ui</span> <span>Sms</span>
<div ng-repeat="module in modules">
{{ module.name }}
<div ng-repeat="notification in module.notifications">
<!-- Email -->
<input type="checkbox" ng-model="notification.email" />
<!-- Ui -->
<input type="checkbox" ng-model="notification.ui" />
<!-- Sms -->
<input type="checkbox" ng-model="notification.sms" />
</div>
</div>