2016-07-14 11 views
2

Ich bin neu in Angular und habe nach einem gesucht, um Daten von einer Iteration innerhalb von ng-repeat zu einer Tabelle zu übergeben, die ui-grid erstellt.Übergeben Sie Daten zu ui-Grid innerhalb von ng-repeat in Angular

Ich habe ein JSON-Objekt, das auf diese ähnlich strukturiert:

{ 
category1: {obj{atr1: val, atr2:val}, obj2{atr1: val, atr2:val}}, 
category2: {obj{atr1: val, atr2:val}, obj2{atr1: val, atr2:val}} 
} 

Ich verwende ng-repeat darüber dies ähnlich zu iterieren:

<div ng-repeat="(category, objs) in jsonObj"> 
    <h3>{{category}}</h3> 
    <div ui-grid="{ data: objs}" class="grid"></div> 
</div> 

Dies funktioniert für die Anzeige der Kategoriename(), aber ich kann nicht herausfinden, wie man die Objs an das UI-Grid weitergibt. Was ist der richtige Weg? Kann ich eine Funktion machen und sie über Daten aufrufen: und die Daten so bekommen? Wenn ich nur gridOptions verwende und die Daten in der .js-Datei definiere, erhalten alle Tabellen die gleichen Daten. Kann ich eine Variable von der Stelle, an der die Tabellen iteriert werden, übergeben, damit ich die richtigen Daten für jede Tabelle auswählen kann?

+1

Gemäß dem [doc für uiGridOpotions] (http://ui-grid.info/docs/#/api/ui.grid.class:GridOptions) unterstützt das Datenfeld nur Array. Vielleicht müssen Sie Ihre Datenstruktur für jede Kategorie in ein Array konvertieren. – MMhunter

+0

Aah, ich muss das untersuchen. Danke für den Link! – tjarles

Antwort

0

Ich habe es herausgefunden!

<div ng-repeat="(category, objs) in jsonObj"> 
    <div ui-grid="{ data: jsonObj[category] }" class="grid"></div> 
    </br> 
</div> 

Dies zusammen mit dem Erstellen der entsprechenden Werte Listen (Danke MMhunter) funktioniert.