【发布时间】:2019-08-09 20:31:33
【问题描述】:
我有一个由诸如音乐之类的父类别组成的数据结构。它的标题是在hobbies[0].parent.title 下的对象中定义的987654326@ 作为一个数组 - 我想将这些作为复选框输出,这同样没问题,但是当我尝试将它们设置为反应形式时出现问题,我的基本需要是验证至少 1 或 2 已被检查并使用 ReactiveForms 获取选中项目的信息我很清楚如何在没有嵌套 json 结构的情况下实现这一点,这真的让我失望
我在这些文章中尝试了很多不同的方法,但我似乎无法让它发挥作用,非常感谢任何帮助。
https://stackblitz.com/edit/form-array-3-levels
https://www.toptal.com/angular-js/angular-4-forms-validation
https://jenniferwadella.com/blog/managing-dynamic-and-nested-forms-angular
我已经玩了几个小时了,我的 html 保持不变
<form [formGroup]="form" action="">
<label *ngFor="let parent of fetchInterests; let i = index">
<div *ngFor="let item of parent.children; let i = index">
<ion-checkbox ></ion-checkbox> {{ item.title }} {{ item.selected }}
</div>
</label>
</form>
我的 json 演示数据如下
var hobbies = [{
"parent": {
"parentId": "dMGkZuB8JV",
"title": "Music",
"hero": "https://s3-eu-west-1.amazonaws.com/music/placeholder.jpg"
},
"children": [{
"title": "Jazz",
"hero": "https://s3-eu-west-1.amazonaws.com/music/placeholder.jpg",
"about": "",
"selected": false
}, {
"title": "Rock",
"hero": "https://s3-eu-west-1.amazonaws.com/music/placeholder.jpg",
"about": "",
"selected": false
}, {
"title": "Classical",
"hero": "https://s3-eu-west-1.amazonaws.com/music/placeholder.jpg",
"about": "",
"selected": false
}, {
"title": "Soul",
"hero": "https://s3-eu-west-1.amazonaws.com/music/placeholder.jpg",
"about": "",
"selected": false
}]
}, {
"parent": {
"parentId": "19h2yOfZaq",
"title": "computers and systems",
"hero": "https://s3-eu-west-1.amazonaws.com/it/placeholder.jpg"
},
"children": [{
"title": "data processing",
"hero": "https://s3-eu-west-1.amazonaws.com/it/placeholder.jpg",
"about": "",
"selected": false
}]
}, {
"parent": {
"parentId": "m2zQkAgOog",
"title": "African planes",
"hero": "https://s3-eu-west-1.amazonaws.com/outdoors/placeholder.jpg"
},
"children": [{
"title": "camping",
"hero": "https://s3-eu-west-1.amazonaws.com/outdoors/placeholder.jpg",
"about": "",
"selected": false
}, {
"title": "swimming",
"hero": "https://s3-eu-west-1.amazonaws.com/outdoors/placeholder.jpg",
"about": "",
"selected": false
}, {
"title": "hunting",
"hero": "https://s3-eu-west-1.amazonaws.com/outdoors/placeholder.jpg",
"about": "",
"selected": false
}]
}]
【问题讨论】:
标签: javascript angular angular-reactive-forms