Javascript angularjs中的单卡和多卡选择数据

Javascript angularjs中的单卡和多卡选择数据,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,请看小提琴 我在一个容器中有多张卡。我有一个独特的值“objectid” 我有“selactAll”按钮,如果我点击该按钮,每一张卡都会被选中,并且保存按钮是启用的。这一次我需要在一个参数中传递所有卡片 在“selectAll”之后,如果我点击任何一张卡,该卡将被取消选中。此时,如果我单击“保存”按钮,其余选定的卡片将以阵列格式显示 第三个是我可以选择单卡点击里面的按钮。这一次,我需要在save参数中传递单个卡。如何以数组格式传递这些数据。只有选定的数据 var myApp=angula

请看小提琴

我在一个容器中有多张卡。我有一个独特的值“objectid”

  • 我有“selactAll”按钮,如果我点击该按钮,每一张卡都会被选中,并且保存按钮是启用的。这一次我需要在一个参数中传递所有卡片

  • 在“selectAll”之后,如果我点击任何一张卡,该卡将被取消选中。此时,如果我单击“保存”按钮,其余选定的卡片将以阵列格式显示

  • 第三个是我可以选择单卡点击里面的按钮。这一次,我需要在save参数中传递单个卡。如何以数组格式传递这些数据。只有选定的数据

var myApp=angular.module('myApp',[]);
myApp.controller('MainCtrl',函数($scope){
$scope.unselectBtn=true;
$scope.selectBtn=false;
$scope.saveBtn=true;
$scope.divs=[1,2,3];//对于eample
$scope.containerSelected=$scope.divs.map(val=>false);
$scope.buttonVisible=$scope.divs.map(val=>true);
$scope.toggleButton=函数(e,i){
console.log('toggleButton')
$scope.containerSelected[i]=true;
if($scope.containerSelected[i]=true){
$scope.saveBtn=false;
}
$scope.buttonVisible[i]=false;
e、 停止传播();
};
$scope.toggleContainer=函数(i){
if($scope.containerSelected[i]){
$scope.containerSelected[i]=false;
$scope.buttonVisible[i]=true;
}
};
$scope.toggleAllButton=函数(){
$scope.unselectBtn=false;
$scope.selectBtn=true;
$scope.saveBtn=false;
$scope.containerSelected=$scope.containerSelected.map(val=>true);
$scope.buttonVisible=$scope.buttonVisible.map(val=>false);
console.log($scope.containerSelected)
}
$scope.toggleUnselectAllBtn=函数(){
$scope.unselectBtn=true;
$scope.selectBtn=false;
$scope.saveBtn=true;
$scope.containerSelected=$scope.containerSelected.map(val=>true);
$scope.buttonVisible=$scope.buttonVisible.map(val=>false);
console.log($scope.containerSelected)
}
$scope.saveData=函数(数据){
控制台日志(数据);
}
});
#myApp{
宽度:100%;
显示:-webkit内联框;
边框:1px纯黑;
边缘顶部:55px;
}
.集装箱{
宽度:10%;
高度:100px;
边框:1px纯黑;
利润率:10%;
}
button.btn.btn-primary{
利润率最高:25%;
左缘:40%;
}
.选定边界{
边框:3件纯蓝;
}
#选择全部{
边缘顶部:20px;
}

全选
取消选择全部
拯救
好啊

它看起来像是
$scope.containerSelected
数组中值的位置对应于div的ID

例如,如果
$scope.containers selected
[true,false,false]
,则选择第一个div,但其余两个未选择

根据这个假设,您可以使用该方法创建一个数组,该数组给出所有
true
元素的位置,这些元素将对应于div。如果div id从1开始,只需将1添加到数组中的值

例如:

let dataToSend = $scope.containerSelected.reduce(function(a, e, i) {
    if (e === true)
        a.push(i);
        // or, if they start at 1, use a.push(i+1)
    return a;
}, []);
更新小提琴: