0

Ich benutze nested uib-accordion, und ich möchte ng-click zu jedem der Uib-Akkordeon hinzufügen.AngulaJs: ng-Klick funktioniert nicht auf Netsted Uib-Akkordeon

 <uib-accordion close-others="oneAtATime1"> 
      <div uib-accordion-group class="panel-default" is-open="prInfo.isOpen" heading="{{prInfo.name}}" 
       ng-click="getPayrolls(prInfo)" 
       ng-repeat="prInfo in allPersonInfoNames"> 
       <uib-accordion close-others="oneAtATime2"> 
        <div uib-accordion-group class="panel-default" heading="{{payroll.logPeriod.name}}" 
         ng-click="getPayroll(payroll)" 
         ng-repeat="payroll in prInfo.payrolls | orderBy: 'logPeriod.dbId': reverse = true"> 
         <div class="row"> 
          <div class="col-md-4"> 
           <h1>in nested accordion</h1> 
          </div> 
         </div> 
        </div> 
       </uib-accordion> 
      </div> 
     </uib-accordion> 

Also, wenn ich auf den ersten Akkordeon klicken, erste ng-Click-Arbeit richtig, aber wenn ich auf der zweiten Akkordeon klicken, wieder erste ng-click genannt wird, und die zweite ng-click nie aufgerufen.

Ich kann dieses Problem lösen, indem zweite ng-click in Körper von Akkordeon Zugabe aber durch diese Lösung, ich habe 3 mal klicken zweiten arbeiten ng Sie auf, die erste Mal für Open das erste Akkordeon und erste ng-click laufen, die zweiten Zeit, das zweite Akkordeon zu öffnen und das dritte Mal auf die Funktion im verschachtelten Akkordeonkörper zu klicken, um die zweite ng-click zu starten. Wie kann ich ng-click functions durch erste Lösung trennen?

demo on plunker

+1

In Ihrem Plunkr verursacht diese Zeile einen Fehler. $ scope.allPersonInfoNames [1] .payrolls.push ({deposit: 999999}), da $ scope.allPersonInfoNames [1] keine Payrolls hat. – user2263572

+0

Das Problem ist behoben, aber jetzt, wenn ich auf einen zweiten ng-Klick klicke, werden zwei Funktionen erneut aufgerufen. – mgh

Antwort

1

Das Problem Ihre Verkleidung scheint auf diesen Thread bezogen zu werden: AngularJS ng-click stopPropagation Wenn Sie auf den zweiten Klick ng Klick, müssen Sie das Ereignis Ausbreitung stoppen die erste Methode zu verhindern, ausgelöst werden.

Ich hoffe es kann helfen

Verwandte Themen