如何防止删除和添加所有部分-AngularJS

如何防止删除和添加所有部分-AngularJS,angularjs,push,splice,Angularjs,Push,Splice,我在添加几个部分时遇到问题,在每个部分中尝试添加其他问题,但所有部分都添加了这些问题。我希望有人能帮忙 此处代码:这是因为您的问题数组位于控制器范围内,对集合的任何更改都将反映到所有子范围。一个选项是将问题集合保留为items对象的一部分,并在添加/删除时对每个问题集合进行更新 $scope.Add_Section = function() { $scope.items.push({questions:[]}); }; 及 及 仅一个问题数组不足以表示每个项目部分。 仔细想想

我在添加几个部分时遇到问题,在每个部分中尝试添加其他问题,但所有部分都添加了这些问题。我希望有人能帮忙


此处代码:

这是因为您的问题数组位于控制器范围内,对集合的任何更改都将反映到所有子范围。一个选项是将问题集合保留为items对象的一部分,并在添加/删除时对每个问题集合进行更新

 $scope.Add_Section = function() {
    $scope.items.push({questions:[]});
  };



仅一个问题数组不足以表示每个
项目
部分。 仔细想想,每个
项必须有一个数组。您可以按照NMittal的建议,将
问题
作为每个
项的属性。那就行了

另一种方法是确保
问题
数组的结构与
数组相匹配,如果您希望将这些项分开

我们正在使用嵌套的ng repeat,因此必须临时存储items数组的$index,以便在
问题的ng repeat中使用

<div ng-repeat="item in items" data-sec="@{{$index}}" ng-init="itemIndex=$index">


请更具体一点,在这里添加代码的重要部分,谢谢!可以直接使用$parent来代替存储项目索引,这是事实,但我不会这样做,因为这是一种脆弱的关系。重新安排HTML,或者添加任何创建另一个$scope的指令都可能很容易破坏该功能。
$scope.Remove_Question = function(parentIndex,index) {
    $scope.items[parentIndex].questions.splice(index, 1);
  }
<span class="input-group-addon" style="cursor: pointer;" ng-click="Remove_Question($parent.$index,$index)">
<div ng-repeat="item in items" data-sec="@{{$index}}" ng-init="itemIndex=$index">
<div class="input-group" ng-repeat="question in questions[itemIndex]" style="margin-bottom: 15px;">
<button ng-click="Add_Question(itemIndex)" class="btn btn-success">Agregar Pregunta</button>
<span class="input-group-addon" style="cursor: pointer;" ng-click="Remove_Question($index, itemIndex)">
$scope.questions = {};

$scope.Add_Question = function(itemIndex) {
  if($scope.questions[itemIndex] === undefined){
    $scope.questions[itemIndex] = [];
  }
  $scope.questions[itemIndex].push({

  });
};

$scope.Remove_Question = function(index, itemIndex) {
  $scope.questions[itemIndex].splice(index, 1);
}