如果在使用清单模型时检查了复选框,如何禁用复选框?

时间:2017-02-01 16:58:14

标签: javascript angularjs checklist-model

我正在使用此checklist-model directive循环查看可以将对象保存到数据库的复选框列表,并可以检查tabs数组中pop数组中存在的值1}}对象: 所以pop是具有数组属性tabs

的主要对象
<md-input-container class="md-block" flex-gt-sm="25" flex="45" content-layout-align="center start" ng-repeat="tab in allTabs">
    <md-checkbox checklist-model="pop.tabs" checklist-value="tab" >
        {{tab.name}}
    </md-checkbox>
</md-input-container>

我想添加一项功能,如果已经选中了复选框,则禁用它,但我的尝试最终会禁用所选的任何复选框(不仅仅是那些已选中的复选框)

1 个答案:

答案 0 :(得分:0)

解决方案很简单: 在initialize函数中(加载页面时调用的函数):

    const selectedIds = pop.tabs.map(x=>x.id);
    $scope.selectedIds = selectedIds;

然后添加了ng-disabled指令:

    <md-input-container ng-repeat="tab in allTabs">
                    <md-checkbox checklist-model="pop.tabs" checklist-value="tab" ng-disabled="selectedIds.includes(tab.id)">
                        {{tab.name}}
                    </md-checkbox>
                </md-input-container>

我尝试在initialize方法之外进行此操作,但新选择的id已添加到tabs对象的pop数组中。