Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用复选框在angularjs中创建相关对象的数组列表_Angularjs - Fatal编程技术网

如何使用复选框在angularjs中创建相关对象的数组列表

如何使用复选框在angularjs中创建相关对象的数组列表,angularjs,Angularjs,我有一个给定的对象数组,我想根据相关复选框将其对象添加到“选定”列表中。我如何设置它们,而不必设置太多控制器 这是一把小提琴,在使用收音机盒时效果很好: JavaScript: app = angular.module('app',[]); app.controller('controller', function($scope){ $scope.aData = [ {i:1}, {i:2} ]; $scope.aSelected = []; }); <body ng

我有一个给定的对象数组,我想根据相关复选框将其对象添加到“选定”列表中。我如何设置它们,而不必设置太多控制器

这是一把小提琴,在使用收音机盒时效果很好:

JavaScript:

app = angular.module('app',[]);

app.controller('controller', function($scope){
$scope.aData = [
    {i:1},
    {i:2}
];
$scope.aSelected = [];
});
<body ng-app="app">
        <div ng-controller='controller'>
            <input type = "checkbox" ng-model = "aSelected"  value = "{{aData[0]}}">
            <input type = "checkbox" ng-model = "aSelected"  value = "{{aData[1]}}">

            <div>test:     {{oSelected}}</div>
         </div>
</body>
html:

app = angular.module('app',[]);

app.controller('controller', function($scope){
$scope.aData = [
    {i:1},
    {i:2}
];
$scope.aSelected = [];
});
<body ng-app="app">
        <div ng-controller='controller'>
            <input type = "checkbox" ng-model = "aSelected"  value = "{{aData[0]}}">
            <input type = "checkbox" ng-model = "aSelected"  value = "{{aData[1]}}">

            <div>test:     {{oSelected}}</div>
         </div>
</body>

测试:{oSelected}}

一个选项是观察
oSelected
数组上的更改,并在此基础上创建相关对象的列表

$scope.$watch(function () {
    return $scope.oSelected;
}, function (value) {
    $scope.selectedItems = [];
    angular.forEach($scope.oSelected, function (v, k) {
        v && $scope.selectedItems.push($scope.aData[k]);
    });
}, true);

jsfiddle

谢谢。我正在用自动取款机检查。问题是,除了代码之外,我还必须为初始化添加数据绑定。我真的希望有一种方法可以使复选框像收音机一样智能。我想说的是,想要一组复选框的行为像一个事物列表,而不是像一个1-0操作符,这并不是最违反直觉的事情。真的不清楚你想要什么。演示已经使用了复选框,而不是收音机。更详细地解释行为对不起,我的小提琴弄乱了。我更新了链接和代码。基本上,我希望有一个数组,其中包含复选框的值,如果它们共享相同的模型,或者(这是不可能的)一些类似的功能@这绝对是我迄今为止最接近的一次!这在我的特殊情况下有点棘手,但我会试试看。非常感谢。我会再等一到两天,但是如果你把这个作为答案贴出来,并且看不到更好的解决方案,我会给你答案的积分@charilietfl:我还可以问一下,在这样一个对象数组上迭代最有角度的方法是什么?您会在ng repeat中使用ng show吗?还是有更好更有效的方法?