我要做的是根据传递给我的数据制作一些动态的收音机/复选框字段。不幸的是,我无法控制这些数据的格式,但完成工作应该没问题。
据我所知:http://plnkr.co/edit/LKwueHUzSrC5JpeBY9So
我最终需要最终得到的数据格式是一个简单的数组:
"school_type": [
"Government/State",
"International",
"Co-educational"
]
此数据可能来自收音机框,也可能来自复选框(如果已选中)。如果只有一个选项,则显示复选框,如果有多个选项,则显示无线电。
所以我可以显示字段,但我遇到的问题是:
name
属性似乎不起作用
每一套。 任何帮助都将不胜感激。
答案 0 :(得分:2)
您的代码存在以下几个问题:
这是您的更新代码:
<label ng-switch-when="r" class="radio">
<div ng-repeat="option in options">
<input type="radio" name="{{fieldname}}" ng-model="$parent.$parent.selectedid" value="{{option}}">
<span>{{ option }}</span>
</div>
</label>
<label ng-switch-when="c" class="checkbox">
<input type="checkbox" name="{{fieldname}}" ng-false-value="" ng-true-value="{{options[0]}}" ng-model="$parent.selectedid">
<span>{{ options[0] }}</span>
</label>
请注意,为了正确绑定控件,我必须使用$parent.$parent
作为单选按钮,$parent
作为复选框。这是必需的,因为ng-switch
和ng-repeat
都会创建新的子范围。所以我不得不上升一个级别的复选框和两个单元格的单选按钮。如果您使用对象而不是基元进行绑定,则可以避免这种情况。我建议你尝试重构你的代码,这样就可以了。这个article有更多关于此事的信息。
最后,这是你的Plunker working version。