1
  • 我正在尝试使用存储在 json 文件中的元数据在屏幕上显示 html 控件。
  • 此外,我正在尝试创建一个状态,在该状态下,按下复选框将使下拉菜单被禁用。
    • 我设法为带有静态选项的选择框和带有动态选项的选择框(使用 ng-options)实现了这一点。
    • 用ng-repeat包装它时我无法做到这一点。

我花了很多时间来完成这项工作,但效果不佳。

如果有人能指出我正确的方向,我将不胜感激。

我创建了一个示例代码,可以在此处的Plunker中找到

4

2 回答 2

1

来自ngRepeat文档:

ngRepeat 指令为集合中的每个项目实例化一次模板。每个模板实例都有自己的范围

诀窍是添加controlCheckedform删除ng-init. 因此它们将在同一范围内。

<div ng-show="control.type == 'Checkbox'">
    <input type="checkbox" ng-model="form.controlChecked" name="{{control.id}}"/>
</div>

<div ng-show="control.type == 'DropdownList'">
     <select    ng-model="control.id" 
                ng-disabled="!form.controlChecked"
                ng-options="value.code as value.name for value in control.items" 
                name="{{control.id}}"
                >
    </select>

Demo

于 2013-08-07T05:46:06.707 回答
0

来自http://docs.angularjs.org/api/ng.directive:ngRepeat

ngRepeat指令为集合中的每个项目实例化一次模板。每个模板实例都有自己的范围。

所以看起来你应该使用$parent范围:$parent.controlChecked

于 2013-08-07T05:47:13.287 回答