我在js中有一个递归数组:
[{
type: 'cond',conditionId: 1,conditions: undefined
},{
type: 'cond',conditionId: 2,{
type: 'group',conditionId: undefined,conditions: [{
type: 'cond',conditionId: 3,conditions: undefined
},{
type: 'cond',conditionId: 4,conditions: undefined
}]
}]
它使用ng-repeat递归显示在AngularJS中,并使用内联模板:
一切正常.
现在我想从内部ng-repeat中删除一个项目.我可以使用$index获取我单击(删除)项目的索引,也可以获取ng-click上的参数cond作为参数.我也可以访问$parent但它指向对象的根…
如何在不手动搜索整个条件数组的情况下访问内部数组?奇怪的是,您可以轻松访问内部数组的索引,但不能访问实际的数组实例.
关于这个问题的任何一个建议?谢谢..
编辑2016/03/21
在接受答案之前,“暴力”版本的实现方式如下:
$scope.deleteConditionClick = function (id) {
deleteCondition($scope.conditions,id);
};
function deleteCondition(conditions,id) {
var conds = conditions;
if (conds) {
for (var i = 0; i < conds.length; i++) {
if (conds[i].type === 'cond') {
if (conds[i].conditionId === id) {
conds.splice(i,1);
return true;
}
} else if (conds[i].type === 'group') {
deleteCondition(conds[i].conditions,id);
}
}
}
}
我希望它能帮助其他有类似问题的人.
最佳答案