我一直在努力解决几个问题,所以我想在做了很多搜索之后我会伸手去寻求帮助。我正在使用AngularJS。
我的第一个问题是当我使用ng-repeat时复选框无法正常工作,它只会检查下面表格代码段中的第一个框。我正在使用自定义复选框,我用css编码是标签的原因。
我的第二个问题是,当我单击复选框时,它应该删除我想要的任何行,但如果我从表格底部开始,它会删除之前的行,但是如果我从顶部开始该表按预期工作,除了被检查的代码片段。我尝试了很多方法来设置索引,但它仍然不起作用。
$ scope.removeRow = function(type){
var index = -1;
var myArr = eval( $scope.contacts );
for( var i = 0; i < myArr.length; i++ ) {
if( myArr[i].type === type ) {
index = i;
break;
}
{
if( index === -1 ) {
alert( "Something gone wrong" );
}
$scope.contacts.splice(index, 1);
};
答案 0 :(得分:0)
首先,请勿使用eval($scope.contacts)
。如果该变量是一个字符串并包含javascript它将运行该javascript。如果未使用myArr
定义myArr = $scope.contacts
,您可以使用myArr = JSON.parse(JSON.stringify($scope.contacts)
或使用angular.copy
方法。
我没有看到你的HTML,所以我无法告诉你为什么你的复选框不起作用。但是关于你的第二个问题,如果你在点击splice
时删除了上面的一行,为什么不将该代码更改为:
$scope.contacts.splice(index + 1, 1)