javascript - Angularjs 按下 ng-repeat 内的复选框时禁用下拉菜单

标签 javascript angularjs angularjs-ng-repeat ng-show

  • 我正在尝试使用存储在 json 文件中的元数据在屏幕上显示 html 控件。
  • 此外,我正在尝试创建一种状态,按下复选框将禁用下拉列表。
    • 我成功地通过带有静态选项的选择框和带有动态选项的选择框(使用ng-options)实现了这一点。
    • 当我用 ng-repeat 包装它时,我无法实现这一点。

我花了很多时间来完成这项工作,但处于风向标。

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

我创建了一个示例代码,可以在 Plunker here 中找到。

最佳答案

来自ngRepeat文档:

The ngRepeat directive instantiates a template once per item from a collection. Each template instance gets its own scope

技巧是将 controlChecked 添加到 form 并删除 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

关于javascript - Angularjs 按下 ng-repeat 内的复选框时禁用下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18095171/

相关文章:

angularjs - Angular 使用 limitTo 和 Filter

javascript - 返回 HTML 元素的 HTML 代码

javascript - 动态滚动文本区域

javascript - Javascript 可以用另一种语言代替吗?

unit-testing - 如何为 AngularJS 模型编写单元测试

javascript - 使用分组时如何在 AngularJS ui-grid 中进行过滤?

javascript - 嵌套的ng-repeat中的Angularjs ng-class-odd

javascript - 如何在 Angular.js 中从不同 View 搜索项目

JavaScript 到 Active Twitter Bootstrap 工具提示

angularjs - CORS:AngularJS + Resteasy 3 + Wildfly