2016-05-19 2 views
1

Ich erhalte eine Liste der Daten von Db zu einer Ansicht mit ng-repeat. Um mehrere Werte gleichzeitig auszuwählen, verwende ich das Checklistenmodell. Mein Code ist wie folgt,Erhalten Sie ng-repeat Daten in 4 Spalten

<div ng-repeat="item in items"> 
<input type=checkbox checklist-model="user.role" checklist-value="item"/>{{item}} 
</div> 

Dies wird eine lange Liste untereinander zurückgeben. Was ich brauche, ist, dass diese Daten in der Liste in 4 Spalten angezeigt werden. Jede Hilfe bitte!

Antwort

1

Working Demo

Dies ist, was Sie suchen. Hoffe, dass Sie Ihr Problem lösen.

<div ng-repeat="product in products" ng-if="$index % 3 == 0" class="row"> 
    <div class="col-xs-4"> <input type="checkbox" checklist-model="user.role" checklist-value="{{products[$index]}}"/>{{products[$index]}}</div> 
    <div class="col-xs-4"> <input type="checkbox" checklist-model="user.role" checklist-value="{{products[$index]}}"/>{{products[$index+1]}}</div> 
    <div class="col-xs-4"> <input type="checkbox" checklist-model="user.role" checklist-value="{{products[$index]}}"/>{{products[$index+2]}}</div> 
</div> 

Ausgang:

enter image description here

+0

Noch dies wird Werte in einer einzigen Spalte zurückgeben. Ich möchte die Daten in 4 Spalten gleichmäßig aufgeteilt. Was das tut, ist die Werte zu einer Zeile hinzufügen –

+0

@TharinduSenanayake Was meinst du mit einer einzigen Spalte? [Überprüfen Sie diese PLNKR] (http://pnnr.co/edit/WNxztaH1YWv77qL4lbz3?p=preview). Ich habe einen Tabellenrand hinzugefügt. Es zeigt Daten in drei separaten Spalten an. Eine ähnliche Ausgabe kann mit "div" wiedergegeben werden. –

+0

Ja hat versucht, dem Scope-Objekt weitere 3 Werte hinzuzufügen. Dann gab es 6 Werte in 6 Spalten zurück. Was ich will, ist die zusätzlichen 3 Werte zu den ersten 3 Spalten unter den ersten 3 Werte jeweils –

0

Sie Anzeige verwenden: inline-block auf Elemente, die Sie in einer Reihe möchten. Wie du sie in dieser Reihe auslegst, kann je nach dem, was du suchst, auf verschiedene Arten geschehen.

<div ng-repeat="item in items" style="display:inline-block;"> 
    <input type=checkbox checklist-model="user.role" checklist-value="item"/>{{item}} 
</div> 
+0

Das Problem Im Haben wird nicht die Daten in eine Zeile. Ich möchte die Daten in 4 Spalten aufgeteilt. Ich habe ungefähr 1000 Datenwerte. Ich will sie in 4 Spalten mit 200 Daten in jeder Spalte –

+0

Sorry, verpasste Ihren Kommentar. Es sieht so aus, als ob Sie horizontal traversieren möchten. Sie können also $ index und modulo (% 4) verwenden, um zu sehen, ob Sie am Ende einer Zeile stehen und ng - falls eine
. Wenn ich es wäre, würde ich CSS verwenden und nicht JS für etwas verwenden, das in CSS mit nth-of-type oder ähnlichem nicht schwer ist. –