设置ng-checked不允许取消选中?

时间:2017-01-30 15:21:06

标签: angularjs

我根据数据库中的数据在Create页面(也用于编辑)中设置ng-checked指令。但问题是我无法取消选中它,所以我无法编辑数据:

                <md-input-container class="md-block" flex-gt-sm="25" flex="45" content-layout-align="center start" ng-repeat="tab in allTabs">
                    <md-checkbox class="chbox" aria-label="tab.name" checklist-model="entity.tabs" checklist-value="tab" ng-checked="setCheck(tab.id)">
                        {{tab.name}}
                    </md-checkbox>
                </md-input-container>

控制器:

$scope.setCheck = function (id) {
        var alltabs = $scope.allTabs;
        for (var i = 0; i < alltabs.length; i++) {
            if (alltabs[i].id == id)
                return true
            return false
        }
    }

有没有办法允许这个角度?

1 个答案:

答案 0 :(得分:1)

首先,您的for - 循环错误。将return false语句放在for循环之外:

for (var i = 0; i < alltabs.length; i++) {
    if (alltabs[i].id == id)
        return true;
}
return false;

其次,如果您希望能够选中/取消选中复选框,则不应使用ng-checked。如果要检查复选框并且相应的行为相应,则此指令读取每个摘要(请参阅the note in the documentation)。

如果你正在使用ng-model(或者在这种情况下checklist-model),你可以删除ng-checked,因为checklist-model只会检查数组选中标签。