2016-04-06 21 views
1

Ich habe eine Tabelle mit Themen und Unterthemen erstellt, aber ich möchte, dass jedes Unterthema nur auf ein Thema verweist, ohne es zu ändern. Im Moment aktualisiert mein Code den Bereich auf den letzten ng-repeat-Aufruf für alle meine divs. Das Problem besteht darin, dass wenn zwei oder mehr Zeilen geöffnet sind, alle Zeilen ihren Bereich so aktualisieren, dass sie der zuletzt geöffneten Zeile entsprechen. Ich habe ein Beispiel auf plunkr Aufstellmaße:Verschachteltes ng-repeat Problem

Meine Ansicht sieht wie folgt aus:

<table class="section-table"> 
      <tbody> 
      <tr><td class="section-topic">Testing</td></tr> 
      <tr data-ng-repeat="subtopic in main.subtopics"> 
       <td data-ng-click="subtopic.isCollapsed = !subtopic.isCollapsed" class="section-subtopic">{{subtopic.label}} 
       <div uib-collapse="subtopic.isCollapsed" expanded="main.showContent(subtopic.id)"> 
       <div data-ng-repeat="content in main.contents" class="topic-content"> 
       <div data-ng-bind="content.content"></div> 
      </div> 
      </div> 
       </td> 
      </tr> 
      </tbody> 
     </table> 

Ich denke, es gibt ein Problem mit der inneren ng-Wiederholung, aber Ich bin mir nicht sicher. Gibt es eine Möglichkeit für die Unterthemen, ihr Thema anzupassen, ohne ihren Bereich zu aktualisieren, wenn zwei oder mehr Tabellenzeilen geöffnet sind?

Antwort

0

Das Problem liegt in Ihrer ShowContent-Methode. Neben dem offensichtlichen Fehler, var testArr in jeder Bedingung zu deklarieren, setzt diese Methode das Array jedes Mal, wenn showContent aufgerufen wird.

Sie müssen das Unterfeld in Ihrem Themenobjekt speichern, damit Sie jedes entsprechend anzeigen können