Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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
Javascript Angularjs,对表中选定的复选框应用操作_Javascript_Html_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Javascript Angularjs,对表中选定的复选框应用操作

Javascript Angularjs,对表中选定的复选框应用操作,javascript,html,angularjs,angularjs-ng-repeat,Javascript,Html,Angularjs,Angularjs Ng Repeat,我正在尝试学习AngularJS,我正在实现这个复选框,当我从网格中选中一些复选框并单击移除按钮时,表中的数据应该从选中的复选框中移除 我试过了,但不知道如何实现它 请在Plunker上查看我的密码。 如果你用叉子叉出并给出上述Plunker的工作示例,那就太好了。一个简单的方法是将你的学生列表更改为: $scope.students = [ {Rollno: "1122",Name: "abc",Uni: "res", selected: false}, {Rollno: "2233

我正在尝试学习AngularJS,我正在实现这个复选框,当我从网格中选中一些复选框并单击移除按钮时,表中的数据应该从选中的复选框中移除

我试过了,但不知道如何实现它

请在Plunker上查看我的密码。


如果你用叉子叉出并给出上述Plunker的工作示例,那就太好了。

一个简单的方法是将你的学生列表更改为:

$scope.students = [
  {Rollno: "1122",Name: "abc",Uni: "res", selected: false},
  {Rollno: "2233",Name: "def",Uni: "tuv", selected: false},
  {Rollno: "3344",Name: "ghi",Uni: "wxy", selected: false}
];
与:

以下是完整代码:
(功能(应用程序,ng){
"严格使用",;
app.controller('TableCtrl',['$scope','filterFilter',函数($scope,filterFilter){
$scope.students=[
{Rollno:“1122”,名称:“abc”,Uni:“res”,选择:false},
{Rollno:“2233”,名称:“def”,Uni:“tuv”,选择:false},
{Rollno:“3344”,名称:“ghi”,Uni:“wxy”,选择:false}
];
$scope.save=函数(){
$scope.students.push({
Rollno:$scope.new\u Rollno,
名称:$scope.new_名称,
Uni:$scope.new\u Uni
});
$scope.new_rollno=$scope.new_name=$scope.new_uni='';
};
$scope.remove=函数(){
$scope.students=filterFilter($scope.students,函数(学生){
return!student.selected;
});
};
}]);
}(角度模块('app',[]),角度)
/*样式在这里*/
桌子
{
宽度:100%;
}
表,th,td
{
边框:1px纯黑;
}
颜色
{
背景颜色:浅灰色;
}
.color2
{
背景色:白色;
}
#标题
{
背景色:黑色;
颜色:白色;
}
tr:悬停
{
背景色:深蓝色;
颜色:白色;
字体大小:粗体;
}
#图像img
{
边缘顶部:10px;
}
#img1
{
宽度:33.4%;
}
#img2
{
宽度:66%;
高度:255px;
}
#表1
{
边缘顶部:10px;
}
标签
{
显示:块;
边缘底部:5px;
边缘顶部:5px;
}
按钮
{
边缘顶部:5px;
填充物:5px;
}

JS-Bin
搜索:
卷号:
学生姓名:
大学:
{{student.Rollno}
{{student.Name}
{{student.Uni}}x
罗尔诺:

姓名:
大学:
拯救 去除
Yoshi您的解决方案似乎很完美,但最好不要在remove函数中为$scope.students分配一个新值,因为这样它会从头开始重新创建所有ng repeat元素,所以最好只从students数组中拼接元素,以避免再次创建ng repeat。@Ajaybeniwal请解释一下如何重新创建ng repeat在另一个答案中用Splice做这个吗?@Ajaybeniwal你是对的。就我个人而言,我会首先等待重新绘制成为一个真正的问题(因为这在很大程度上取决于数据量)。在那之前,我会使用
过滤器
,因为它只具有自我描述功能。此外,有了新的v1.2功能,重新绘制所有条目的整个问题应该会过时。
<input type="checkbox" ng-model="student.selected">
$scope.remove = function(){
  $scope.students = filterFilter($scope.students, function (student) {
    return !student.selected;
  });
};