【发布时间】:2017-01-06 23:52:06
【问题描述】:
如果模型中已经存在复选框,我想自动选择它
我尝试了以下代码
控制器
$scope.model = {
items: [{"key":1, "value": "One"},{"key":2, "value": "Two"},{"key":3,
"value": "Three"},{"key":4, "value": "Four"},{"key":5, "value": "Five"}]
};
$scope.selected = [{"key":2, "value": "Two"},{"key":5, "value": "Five"}];
$scope.toggle = function(item, list) {
var idx = list.indexOf(item);
if (idx > -1) {
list.splice(idx, 1);
} else {
list.push(item);
}
};
$scope.exists = function(item, list) {
return list.indexOf(item) > -1;
};
HTML
<div flex="25" ng-repeat="item model.items">
<md-checkbox ng-checked="exists(item, selected)"
ng-click="toggle(item, selected)">
{{ item.value }}
</md-checkbox>
</div>
但默认情况下未选中 Key '2' 和 '5' 的复选框。
如果我替换下面的代码,
$scope.exists = function (item, list) {
for (var i = 0; i < list.length; i++) {
if (list[i].key === item.key) {
return true;
}
}
return false;
};
它在页面加载时选择 2 和 5,但不能同时取消选中。其他 1,3 和 4 按预期工作。
【问题讨论】:
标签: javascript angularjs checkbox angular-material