gpt4 book ai didi

javascript - 如何自动选择 Angular Material 复选框中的现有数据?

转载 作者:行者123 更新时间:2023-12-03 06:13:11 24 4
gpt4 key购买 nike

如果模型中已存在该复选框,我想自动选择该复选框

我尝试使用以下代码

Controller

$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>

但默认情况下未选中键“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 按预期工作。

最佳答案

我想到的一个解决方案

<div flex="25" ng-repeat="item model.items">
<md-checkbox ng-model="item.selected"
ng-click="toggle(item, selected)">
{{ item.value }}
</md-checkbox>
</div>

所以使用 ng-model 并设置默认值

$scope.model = {
items: [{"key":1, "value": "One"},{"key":2, "value": "Two", selected: true},{"key":3,
"value": "Three"},{"key":4, "value": "Four"},{"key":5, "value": "Five", selected: true}]
};

稍后获取您只需要使用的选定项目

$scope.model.items.filter(function(item){return item.selected});

关于javascript - 如何自动选择 Angular Material 复选框中的现有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39231827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com