2016-04-10 9 views
0

I ein Objekt haben (nennen wir es ‚Elemente‘), wie dieserAngularJS ng-Wiederholung-Array mit einem Filter

[ 
{name: 'name1', columns: ['col1', 'col2', 'col3']}, 
{name: 'name2', columns: ['col4', 'col5', 'col6']}, 
{name: 'name3', columns: ['col7', 'col8', 'col9']}, 
] 

I einen Winkelauswahl Objekt mit den Daten aus den Spalten Eigenschaft aufbauen wollen von die Aufgabe durch den

 <md-select 
     name="selectedColumn" 
     ng-model="selectedColumn" 
     required 
     placeholder="Column" 
     ng-model-options="{trackBy: '$value._id'}"> 
     <md-option ng-repeat="elt in elements | filter: {name: selectedElt} " ng-value= "{{ elt }}" > 
      <span class="item-title"> 
      <span>{{elt}}</span> 
      </span> 
     </md-option> 
     </md-select> 

das Problem Namen gefiltert ist, dass ich das volle Objekt zu erhalten, und ich weiß nicht, wie die Filter nur auf einer Schleife über Spalten-Eigenschaft festlegen. Für exemple, wenn i 'name2' für selectedElt (es ist ein anderes Element select) wählen, ich will mein Objekt 'selectedColumn' aufgefrischt mit 'col4' werden, 'COL5' und 'Col6'

Danke

Antwort

0

Setzen Sie eine Variable in Ihrem Controller, wie $ scope.mySelectedElt, und wenn Sie name2 wählen, setzen Sie diese Variable auf dieses Elementobjekt mit ng-change. Dann auf Ihrem anderen Select-Element (selectedElt, Sie sagten, es war) machen Sie eine ng-Wiederholung für Spalte in Spalten.

+0

Es ist die Wiederholung für die Spalten, die ich suche ;-) –

+0

Sie arbeiten mit zwei ausgewählten Elementen, richtig? In der ersten wählen Sie Ihr Element nach Name. Verwenden Sie dann für dasselbe Element ng-change, um eine Variable für das ausgewählte Objekt festzulegen. Verwenden Sie in Ihrem zweiten Auswahlelement einfach ng-repeat für die Spalten des Elements, das Sie in der Variablen gespeichert haben. Wenn dies nicht das ist, was Sie suchen, bitte erläutern Sie. –