Angularjs 复选框选中“删除时不更新”,它将在第二次更新

Angularjs 复选框选中“删除时不更新”,它将在第二次更新,angularjs,Angularjs,我有这样一个代码: <body ng-app="UserManagement" ng-controller="UserManagementController"> <h3>to do</h3> <form ng-submit="addtodo();"> <table> <tr><td colspan="2"><input

我有这样一个代码:

 <body ng-app="UserManagement" ng-controller="UserManagementController">

        <h3>to do</h3>

        <form ng-submit="addtodo();">

            <table>
            <tr><td colspan="2"><input type="checkbox" ng-model="employees.todo" /></td></tr>
            <tr><td colspan="2">{{remng()}} of {{actuallength}} remaining</td></tr>
                <tr ng-repeat="emp in employees">

                    <td><input type="checkbox" ng-model="emp.todo" /></td>
                     <td>{{emp.name}}</td>

                </tr>

                 <tr>

                    <td><input type="text" ng-model="addemp" /></td>
                     <td><input type="button" value="Add" ng-click="addemps()"/></td>
                </tr>

                 <tr>


                     <td><input type="button" value="Delete" ng-click="deleteemps();"/></td>
                </tr>

            </table>
        </form>

    </body>

做
剩余{actuallength}的{remng()}}
{{emp.name}
这里我做了一个简单的添加、删除员工列表的操作。在删除操作中,当我在不选中任何复选框的情况下单击“删除”时,已选中复选框的项目将被删除,但当我单击任何复选框并按delete键时,已单击的复选框这次不会被删除,但当我第二次单击delete时,它将被删除

Js代码:

    var app = angular.module("UserManagement", []);

            //Controller Part
            app.controller("UserManagementController", function($scope, $http) {
         $scope.employees = [
         {name:'Abhinav',todo:true},
         {name:'Amit', todo:false},
         {name:'Raghav',todo:true},
         {name:'Sumit', todo:false},
         {name:'Ashwani',todo:true},
         {name:'Mihir', todo:false},
         ]

        $scope.totalsel = $scope.employees.length;
         $scope.actuallength = $scope.totalsel;
         alert($scope.actuallength);
         //$scope.addtodo = function(){}
         //alert("ddd");



         $scope.deleteemps = function(){
         //alert($scope.employees.name);

         $scope.deleted_emps = [];
            //alert("in foreach: "+$scope.employees[2].todo);       
        angular.forEach($scope.employees, function(todos, index) {
         //alert(todos.todo);
        //alert(todos.name);
         if(todos.todo){


        // alert(index)
         var deletednames = todos.name;
        // var deletedtodo = todos.todo;
         //$scope.deleted_emps.push(deletednames)
        // alert(deletednames);
         $scope.deleted_emps.push({name:todos.name, todo:todos.todo});
         //var abc=angular.toJson($scope.deleted_emps);
        // alert(index);
         //console.log(angular.toJson(todos.name));
         console.log("hiii: "+$scope.deleted_emps.name);


         var indx;
for (var i=0; i<$scope.deleted_emps.length; i++) {
console.log("iii: "+$scope.deleted_emps[i].name);
console.log("i: "+$scope.employees[index].name);
//console.log($scope.employees[index].name.indexOf($scope.deleted_emps[i].name));
    indx = $scope.employees[index].name.indexOf($scope.deleted_emps[i].name);
   // alert(indx);
    if (indx > -1) {
  // alert(indx);
    //$scope.employees.splice()
       $scope.employees.splice(index, 1);
    }

}


         /* var indx;
for (var i=0; i<array2.$scope.deleted_emp; i++) {
    indx = array1.indexOf(array2[i]);
    if (indx > -1) {
        array1.splice(indx, 1);
    }
}
         */

         }
         $scope.actuallength = $scope.totalsel;
         })
         }


            });
var-app=angular.module(“UserManagement”,[]);
//控制器部件
app.controller(“UserManagementController”,函数($scope,$http){
$scope.employees=[
{name:'Abhinav',todo:true},
{name:'Amit',todo:false},
{name:'Raghav',todo:true},
{name:'Sumit',todo:false},
{name:'Ashwani',todo:true},
{name:'Mihir',todo:false},
]
$scope.totalsel=$scope.employees.length;
$scope.actuallength=$scope.totalsel;
警报($scope.actuallength);
//$scope.addtodo=函数(){}
//警报(“ddd”);
$scope.deleteemps=函数(){
//警报($scope.employees.name);
$scope.deleted_emps=[];
//警报(“在foreach:+$scope.employees[2].todo中);
angular.forEach($scope.employees,函数(TODO,索引){
//警报(todo.todo);
//警报(todos.name);
如果(todo.todo){
//警报(索引)
var deletednames=todos.name;
//var deletedtodo=todos.todo;
//$scope.deleted\u emps.push(deletednames)
//警报(删除名称);
$scope.deleted_emps.push({name:todos.name,todo:todos.todo});
//var abc=angular.toJson($scope.deleted\u emps);
//警报(索引);
//log(angular.toJson(todos.name));
log(“hiii:+$scope.deleted_emps.name”);
var-indx;
对于(变量i=0;i-1){
//警报(indx);
//$scope.employees.splice()
$scope.employees.splice(索引1);
}
}
/*var-indx;
对于(变量i=0;i-1){
阵列1.拼接(indx,1);
}
}
*/
}
$scope.actuallength=$scope.totalsel;
})
}
});

我使用的是AngularJS1.6.1。提前谢谢。

我根据你的密码做了一把小提琴

我的示例代码是这样的

$scope.deleteEmp = function(){
    var slicedEmps = [];
    angular.forEach($scope.employees, function(e){
        if(!e.isChecked){
            slicedEmps.push(e);
        }
    });
    $scope.employees = slicedEmps;
};
我的建议是制作新阵列,而不是使用“拼接”


我希望这把小提琴能帮助你。:)

我根据你的密码做了一把小提琴

我的示例代码是这样的

$scope.deleteEmp = function(){
    var slicedEmps = [];
    angular.forEach($scope.employees, function(e){
        if(!e.isChecked){
            slicedEmps.push(e);
        }
    });
    $scope.employees = slicedEmps;
};
我的建议是制作新阵列,而不是使用“拼接”


我希望这把小提琴能帮助你。:)

这里不添加您的全部代码。只需添加删除函数好的,我只添加了删除函数。这里不添加整个代码。只需添加删除功能OK,我只添加了删除功能。