我根据数据库中的数据在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
}
}
有没有办法允许这个角度?
答案 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
只会检查数组选中标签。