Javascript Angularjs-从ng repeat中删除项目时的错误行为

Javascript Angularjs-从ng repeat中删除项目时的错误行为,javascript,angularjs,Javascript,Angularjs,在下面的代码中,我试图删除行。有两个级别的行,要删除内部级别,我只需使用: $scope.remove = function(array, index, parent, parent_index){ array.splice(index, 1); if(array.length==0){ parent.splice(parent_index, 1); } } 删除内行按预期工作,但永远不会删除外行 即使我修改代码试图删除外行,也只有内行消失了,这让我感

在下面的代码中,我试图删除行。有两个级别的行,要删除内部级别,我只需使用:

$scope.remove = function(array, index, parent, parent_index){
    array.splice(index, 1);

    if(array.length==0){
        parent.splice(parent_index, 1);
    }
}
删除内行按预期工作,但永远不会删除外行

即使我修改代码试图删除外行,也只有内行消失了,这让我感到震惊。出什么事了

$scope.remove = function(array, index, parent, parent_index){
    if(array.length==1){
        parent.splice(parent_index, 1);
    }
}
HTML代码

<v-accordion id="subNestedAccordionB">
  <v-pane class="hidePane" ng-repeat="child in item.investmentProposalGrouping"
          ng-init="nivel3index = $index" expanded="isExpanded" id="{{ ::child.id }}">
    <v-pane-header id="{{ child.id }}-header" aria-controls="{{ child.id }}-header"
                   class="hide-header">
      <h5>
        <div class="row hide">
          <div class="item-accordion sub-item item-text-wrap col col-20">
            {{child.agrupacionDesc}}
          </div>
          <div class="col col-10"></div>
          <div class="col col-10"></div>
          <div class="col col-10"></div>
          <div class="col col-10"></div>
          <div class="col col-10">{{child.agrupacionSaldo | number:2}}</div>
          <div class="col col-10">{{child.agrupacionPcrt | number:2}} %</div>
          <div class="col col-10"></div>
          <div class="col col-10"></div>
        </div>
      </h5>
    </v-pane-header>
    <v-pane-content id="{{ child.id }}-content" aria-labelledby="{{ child.id }}-content">
      <ul>
        <li ng-repeat="distrib in child.distribucion" class="li_product">
          <div class="productLink">
            <div class="row">
              <div style="margin-top: 10px;" class="col col-20 productIndent">
                {{distrib.producto.nombreProducto}}
              </div>
              <div style="margin-top: 10px;" class="col col-10">{{distrib.producto.reqProducto}}
              </div>
              <div style="margin-top: 10px;" class="col col-10">
                {{distrib.producto.iLiquidezProducto}}
              </div>
              <div style="margin-top: 10px;" class="col col-10">{{distrib.producto.cotizacion |
                number:2}}
              </div>
              <div style="margin-top: 10px;" class="col col-10">{{distrib.producto.numTitulos |
                number:2}}
              </div>
              <!--<<<<<<< HEAD-->
              <!--<div class="col col-10 bold" id="producto-{{distrib.producto.idProducto}}">{{distrib.saldo | number:2}}<span ng-click="modal2.show();pasarImporte(child.distribucion, $index)">O</span></div>-->
              <!--<div class="col col-10">{{distrib.saldoPcrt | number:2}} %</div>-->
              <!--=======-->
              <div style="margin-top: 10px;"
                   ng-if="(isDiscreccional($parent.$parent.$parent.group.agrupacionTipo)==false)"
                   class="col col-10">{{distrib.saldo | number:2}}
              </div>

              <div ng-if="(isDiscreccional($parent.$parent.$parent.group.agrupacionTipo)==true)"
                   class="col col-10">
                <img src="img/updown.png"
                     style="     margin-top: 9px;width: 15px;  margin-left: 5px;  float: left;"
                     ng-click="modal3.show();pasarImporte(child.distribucion, $index);"
                     value="C"/>
                <input style=" float: left;width: 59%;text-align: right;"
                       id="producto-{{distrib.producto.idProducto}}"
                       ng-change="changeProductPrice(distrib.producto.idProducto)" type="number"
                       ng-model="distrib.saldo"/>
                <span style="    float: left;margin-top: 10px;">{{distrib.producto.divisaProducto}}</span>
              </div>
              <!--<div ng-if="(isDiscreccional($parent.$parent.$parent.group.agrupacionTipo)==true)" class="col col-10">
                <input style="float: left;width: 89%;" type="number" ng-model="distrib.saldoPcrt" disabled />
                <span style="float: left;margin-top: 10px;">%</span>
              </div>-->
              <div style="margin-top: 10px;" class="col col-10">{{distrib.saldoPcrt | number:2}}
              </div

              <div style="margin-top: 10px;" style="text-align: center;" class="col col-10">
                {{showaAndSaveVariation(Initials, distrib.saldo, nivel1index, nivel2index,
                nivel3index, $index) | number:2}}
              </div>

              <!--
              <div class="col col-10"><input text="text" ng-model="distrib.producto.saldo"/> €</div>
              <div class="col col-10"><input text="text" ng-model="distrib.producto.saldoPcrt"/></div>-->
              <!--<div class="col col-10">{{distrib.producto.comDistribucion + distrib.producto.comGestion | number:2}}</div>-->
              <div style="margin-top: 10px;" class="col col-10"><img src="img/closeWindow.png"
                                                                     ng-click="remove(child.distribucion, $index,item.investmentProposalGrouping, nivel3index)">
              </div>
            </div>
          </div>
        </li>

      </ul>

    </v-pane-content>
  </v-pane>
</v-accordion>

remove(child.distribution$index)
-您只传递了两个参数,而不是删除函数所要求的4个参数…?您从未调用代码来删除外行。您是否也可以发布
项目。investmentProposalGrouping
和/或
项目
是…?@mani我已更新问题。如果添加$scope.$apply()在删除函数的末尾?
remove(child.distribution,$index)
-您只传递了两个参数,而不是删除函数所要求的4个参数…?您从未调用代码来删除外行。您是否也可以发布
项目。investmentProposalGrouping
和/或
项目
是…?@mani我已更新问题。如果添加$scope.$apply()在remove函数的末尾?
{
hashKey: "object:180"
agrupacionDesc: "Alternativo"
agrupacionId: "IN"
agrupacionPcrt: 0.00014727422522060096
agrupacionSaldo: 3.05
investmentProposalGrouping:[
    {
    $$hashKey: "object:195"
    agrupacionDesc: "Alternativo"
    agrupacionId: "IN"
    agrupacionPcrt: 0.00014727422522060096
    agrupacionSaldo: 3.05
    distribucion: [
    {
    $$hashKey: "object:204"
    producto: Object
    saldo: 3.05
    saldoPcrt: 0.00014727422522060096
    }
    ]
]
}