AngularJS bietet ng-repeat zum dynamischen Erstellen von Elementen basierend auf einem Datenarray. Wenn Sie mit einer großen Anzahl von Elementen arbeiten, kann die Ausrichtung in Spalten die Benutzeroberfläche und Lesbarkeit verbessern.
Der bevorzugte Ansatz besteht darin, die Daten innerhalb der zu transformieren Controller mithilfe der Chunk-Funktion von JavaScript, die die Daten in gleichmäßig große Gruppen aufteilt:
function chunk(arr, size) {
var newArr = [];
for (var i=0; iDie transformierten chunkedData können dann in der Ansicht wie folgt gerendert werden:
{{item}}
Filtern in der Ansicht (Vorsicht)
Obwohl dies möglich ist, wird die Verwendung von Filtern zum Aufteilen der Daten in der Ansicht für Datenbindungszwecke nicht empfohlen. Werden Eingaben innerhalb der gefilterten Ansicht verwendet, kann es zu Inkonsistenzen kommen.
<div ng-repeat="row in ['a','b','c','d','e','f'] | chunk:3">
<div class="column" ng-repeat="item in row">
{{($parent.$index*row.length) $index 1}}. {{item}}
</div>
</div>
Um Elemente vertikal statt horizontal auszurichten, kann eine Variation der Chunking-Methode verwendet werden:
function columnize(input, cols) {
var arr = [];
for(i = 0; i < input.length; i ) {
var colIdx = i % cols;
arr[colIdx] = arr[colIdx] || [];
arr[colIdx].push(input[i]);
}
return arr;
}
<div ng-repeat="row in columns">
<div class="column" ng-repeat="item in row">
{{item}}
</div>
</div>
Eine weitere Option zum Erstellen vertikaler Spalten ist die Nutzung von CSS-Spalten:
.columns {
columns: 3;
}
<div class="columns">
<div ng-repeat="item in ['a','b','c','d','e','f','g']">
{{item}}
</div>
</div>
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3