Javascript 如何通过单击“从多个复选框中添加和删除用户”;加上「;及;删除“;AngularJS中的按钮?
Javascript 如何通过单击“从多个复选框中添加和删除用户”;加上「;及;删除“;AngularJS中的按钮?,javascript,angularjs,Javascript,Angularjs,var demoApp=angular.module('myApp',[]); demoApp.controller('QaController',函数($scope,$http){ $scope.teams=[ {id:1,姓名:'Chinmay Sahu'}, {id:2,名称:'PHP Chinu'}, {id:3,姓名:'Sanjib Pradhan'} ]; $scope.myTeams=[ {id:1,姓名:'Chinmay Sahu'} ]; $scope.add=函数(){ an
var demoApp=angular.module('myApp',[]);
demoApp.controller('QaController',函数($scope,$http){
$scope.teams=[
{id:1,姓名:'Chinmay Sahu'},
{id:2,名称:'PHP Chinu'},
{id:3,姓名:'Sanjib Pradhan'}
];
$scope.myTeams=[
{id:1,姓名:'Chinmay Sahu'}
];
$scope.add=函数(){
angular.forEach($scope.teams,function(val,key){
如果(val.checked==true){
如果($scope.myTeams.length>0){
var dat=$scope.myTeams.find(函数(o){
返回o.user_id==val.id;
});
}否则{
var-dat={};
}
如果(dat){
$scope.myTeams.push({user_id:val.id,name:val.name});
}
}
});
};
$scope.remove=函数(){
};
$scope.submit=函数(){
};
});代码>
添加
去除
选择隐私
公开的
私有的
隐藏的
有几个问题:
不一致的属性名称。。。id和用户id的混合使用示例
您需要向所有对象添加选中属性
您的add函数在按下“dat”之前对“dat”进行了真实检查,这应该是错误检查
生成的代码如下所示:
var demoApp=angular.module('myApp',[]);
demoApp.controller('QaController',函数($scope,$http){
$scope.teams=[{
id:1,
名称:“Chinmay Sahu”,
勾选:假
}, {
id:2,
名称:'PHP Chinu',
勾选:假
}, {
id:3,
名称:“Sanjib Pradhan”,
勾选:假
}];
$scope.myTeams=[{
id:1,
名称:“Chinmay Sahu”,
勾选:假
}];
$scope.add=函数(){
angular.forEach($scope.teams,function(val,key){
如果(val.checked==真){
val.checked=false;
var dat;
如果($scope.myTeams.length>0){
dat=$scope.myTeams.find(函数(o){
返回o.id==val.id;
});
}
如果(!dat){
$scope.myTeams.push({
id:val.id,
姓名:val.name
});
}
}
});
};
$scope.remove=函数(){
$scope.myTeams.reduceRight(函数(acc、团队、索引、对象){
如果(team.checked==true){
对象。拼接(索引,1);
}
}, []);
};
$scope.submit=函数(){
};
});代码>
安古拉斯普朗克
文件。写(“”);
添加
去除
选择隐私
公开的
私有的
隐藏的
在左侧,仅显示不在myTeams
列表中的项目-使用Array.prototye.filter
和Array.prototype.some
筛选列表
添加时,从筛选列表中获取选中项,并将对象副本添加到myTeams
列表中
删除时,从myTeams
列表中筛选未选中的值,并将其分配回myTeams
列表
var demoApp=angular.module('myApp',[]);
demoApp.controller('QaController',函数($scope,$http){
$scope.teams=[{
id:1,
姓名:“Chinmay Sahu”
},
{
id:2,
名称:'PHP Chinu'
},
{
id:3,
姓名:“桑吉布·普拉丹”
}
];
$scope.myTeams=[{
id:1,
姓名:“Chinmay Sahu”
}];
$scope.getTeams=function(){
返回$scope.teams.filter(函数(团队){
return!$scope.myTeams.some(函数(sTeam){
返回蒸汽.id==team.id;
});
});
};
$scope.add=函数(){
var selectedList=$scope.getTeams().filter(函数(团队){
返回团队。已检查;
}).map(职能(团队){
team.checked=false;
team.privacy='';
var_copy=角度复制(团队);
返回副本;
});
$scope.myTeams=$scope.myTeams.concat(selectedList);
};
$scope.remove=函数(){
$scope.myTeams=$scope.myTeams.filter(函数(团队){
返回!团队检查;
});
};
$scope.submit=函数(){
};
});代码>
无需选择
添加
去除
没有添加任何内容
选择隐私
公开的
私有的
隐藏的
var demoApp=angular.module('myApp',[]);
demoApp.controller('QaController',函数($scope,$http){
$scope.teams=[{
id:1,
名称:“Chinmay Sahu”,
const app = angular.module('some',[])
app.controller('ctr',['$scope', function($scope){
$scope.teams = [
{id:1, name:'Chinmay Sahu'},
{id:2, name:'PHP Chinu'},
{id:3, name:'Sanjib Pradhan'}
];
$scope.myTeams = [
{id:1, name:'Chinmay Sahu'}
];
$scope.add = function() {
var aux = Object.assign({},$scope.teams);
angular.forEach(aux, function(val, key) {
if (val.checked == true) {
var dat = $scope.myTeams.find(function(o) {
return o.id === val.id;
});
var index = $scope.teams.findIndex(function(o){
return o.id === val.id
});
$scope.teams.splice(index,1);
if(!dat){
$scope.myTeams.push({id: val.id, name: val.name});
}
}
});
};
$scope.remove = function() {
var aux = Object.assign({},$scope.myTeams);
angular.forEach(aux, function(val, key) {
if (val.checked == true) {
var dat = $scope.teams.find(function(o) {
return o.id === val.id;
});
var index = $scope.myTeams.findIndex(function(o){
return o.id === val.id
})
$scope.myTeams.splice(index,1);
if(!dat){
$scope.teams.push({id: val.id, name: val.name});
}
}
});
};
$scope.submit = function() {
};
}]);