AngularJS复选框用于数字数组
AngularJS checkboxes for array of numbers
我有一个数字数组,我想将其显示为一组复选框,然后用户可以选中/取消选中这些复选框,我想做的是创建另一个代表选中复选框的值数组。
例如,我的选择是:
$scope.options = [500, 1250, 2500, 5000, 10000, 25000, 50000, 100000];
我的第二个数组是:
$scope.selected = [1250, 2500, 5000, 10000, 25000];
我想构建一个看起来像的表单
[]500
[x] 1250
[x] 2500
[x] 5000
[x] 10000
[x] 25000
[]50000
[]100000
根据表单中选中/未选中的值更新第二个数组。我想我知道如何通过在第一个数组上使用ngRepeat来构建表单,并且为复选框设置checked标志应该足够简单,但我不确定的是如何更新第二次数组。
有没有一种相对简单的方法可以做到这一点?
非常感谢您的帮助!谢谢,
Dylan
对于Angular中与ckeckboxes的交互,我建议使用以下指令:http://vitalets.github.io/checklist-model/
如果不想使用此指令,可以在指定的复选框数组上创建观察程序。
例如:
function MyCtrl($scope) {
$scope.items = [
{
checked: false,
value: 1
},
{
checked: false,
value: 2
},
{
checked: false,
value: 3
},
{
checked: false,
value: 4
}
];
$scope.selectedItems = [];
$scope.$watch('items', function(newValues){
$scope.selectedItems.length = 0;
angular.forEach(newValues, function(item) {
if (item.checked == true) {
$scope.selectedItems.push(item.value);
}
});
}, true);
}
您的观点:
<div ng-controller="MyCtrl">
<div ng-repeat="item in items">
<input type="checkbox" ng-model="item.checked"/>
{{item.value}}
</div>
<pre>{{selectedItems}}</pre>
</div>
这种方式将允许您始终拥有有关所选复选框的实际信息。
我已经为您创建了JSFiddle工作示例。
相关文章:
- JavaScript 在数组中查找缺少的数字
- 在javascript数组中分散数字
- 将数组键转换为数字node.js
- 删除JS数组中的最小数字
- 创建具有2个唯一数字的Javascript数组
- Javascript按数字顺序排序()数组
- 如何将数字切成更小的数字以适合我的数组
- Javascript中的非数字索引多维数组
- 指定数组中的元素对,其总和等于特定的目标数字
- 从数组/字符串中删除所有小数和单个数字
- 从数组[Javascript]的总长度中减去一个干净的数字
- 如何获取数组中数字的最大出现次数
- 如何将数字相加并将结果放入数组中
- JS:从数组中查找特定范围内的最低/最高数字
- 返回最大数字的数组
- 将数组中的所有数字组合相加
- 在数组中生成随机数,没有任何重复的数字
- 循环遍历数字和字母数组并仅提取数字
- 给定一个带有数字的数组,我如何编写一个递归函数,当 2 个元素加起来为一个目标时,它会在数组中查找索引
- 如何将数组(数字)加载到谷歌应用脚本 Byte[] 中