我对angularjs非常陌生,所以我正面临着这个问题,我有一个嵌套的json,并且使用父值作为头并且值孩子作为复选框。现在,当我想要检索已勾选的复选框的值时,我想以格式{parent_name:child_name}存储在数组中。从angularjs中获取嵌套json的父值和子值
我正在使用以下取自this线程的示例数据。
数据:
parents : [{
name: 'George',
age: 44,
children: [{
name: 'Jack',
age: 16,
isChecked: 'true'
},{
name: 'Amy',
age: 13,
isChecked: 'false'
}]
}, {
name: 'Jimmy',
age: 38,
children: [{
name: 'Max',
age: 7,
isChecked: 'false'
},{
name: 'Lily',
age: 5,
isChecked: 'false'
},{
name: 'Kim',
age: 4,
isChecked: 'true'
}]
}]
而且,我的电流输出 looks like this
我的HTML代码是
<div class="col-md-12 col-xs-12" ng-repeat="parent in parents ">
<div class="form-group">
<label>{{parent.name}}</label>
<div class="input-group" ng-repeat="child in parent.children">
<label><input type="checkbox" ng-checked="child.isChecked=='true'"> {{child.name}}</label>
</div>
<hr>
</div>
现在,参考图像,我想有{George:Jack}和{Jimmy:Kim}在一个数组中,但我找不到一种方法来实现这一点。
编辑:我忘了提及另一个重要的一点,一些复选框将被预先选定。根据数据,杰克和金的复选框将在加载时打勾。我必须获取预选值的值以及任何新检查的复选框。
我Plunker代码here.
我希望我的问题是清楚的。提前致谢!
非常感谢您的帮助,但我错过了提及一个非常重要的观点,请看看我重新编辑的问题。 –
只需为所需的孩子设置'isChecked'属性为'true'即可。您可以使用具有函数的原始JSON对象执行此操作,或者使用已设置值的JSON对象执行此操作。我直接修改了JSON以加快速度。我更新了我的答案和plunkr – davidxxx
我已将所有孩子的'isChecked'属性设置为它们各自的值,然后尝试执行您的代码,但无法使其工作。它给我所有复选框的值,而不管选择是否完成。这里是plunker [code。](http://plnkr.co/edit/9CvqqC8zPgm9DVvX5VPS?p=preview) –