Winkelmaterial - Virtuelle Wiederholung

Das md-virtual-repeat-container ist der Bildlaufcontainer für die Komponente md-virtual-repeat.

Attribute

In der folgenden Tabelle sind die Parameter und die Beschreibung der verschiedenen Attribute von aufgeführt md-virtual-repeat-container.

Sr.Nr. Parameter & Beschreibung
1

md-top-index

Bindet den Index des Elements oben im Bildlaufcontainer an $ scope. Es kann die Bildlaufposition sowohl lesen als auch einstellen.

2

md-orient-horizontal

Legt fest, ob der Container horizontal scrollen soll (standardmäßig Ausrichtung und vertikal scrollen).

3

md-auto-shrink

Wenn vorhanden, wird der Behälter verkleinert, um der Anzahl der Elemente zu entsprechen, wenn diese Anzahl unter seiner ursprünglichen Größe liegt.

4

md-auto-shrink-min

Minimale Anzahl von Elementen, auf die md-auto-shrink verkleinert wird (Standard: 0).

md-virtual-repeat

Die virtuelle Wiederholung ist ein Ersatz für ng-repeat, um nur genügend HTML-Elemente zu rendern, um den Container zu füllen und sie beim Scrollen des Benutzers wiederzuverwenden.

Attribute

In der folgenden Tabelle sind die Parameter und die Beschreibung der verschiedenen Attribute von aufgeführt md-virtual-repeat.

Sr.Nr. Parameter & Beschreibung
1

md-item-size

Die Höhe oder Breite der wiederholten Elemente (die für jedes Element identisch sein müssen). Dies ist optional. Dies versucht, die Größe aus dem Dom zu lesen, wenn sie fehlt, setzt jedoch voraus, dass alle wiederholten Knoten dieselbe Höhe oder Breite haben.

2

md-extra-name

Wertet einen zusätzlichen Namen aus, dem das aktuell iterierte Element im wiederholten Bereich zugewiesen werden kann (erforderlich für die Verwendung in md-autocomplete).

3

md-on-demand

Wenn vorhanden, behandelt die md-virtual-repeat Argument als Objekt, das Zeilen anstelle eines Arrays abrufen kann. Dieses Objekt muss die folgende Schnittstelle mit zwei (2) Methoden implementieren:

  • getItemAtIndex - function (index) [object] - Das Element an diesem Index oder null, wenn es noch nicht geladen ist (in diesem Fall sollte das Herunterladen des Elements beginnen).

  • getLength- function () [number] - Die Datenlänge, auf die der Repeater-Container dimensioniert werden soll. Wenn die Anzahl bekannt ist, sollte diese Methode sie idealerweise zurückgeben. Andernfalls geben Sie eine höhere Zahl als die aktuell geladenen Elemente zurück, um ein unendliches Bildlaufverhalten zu erzielen.

Beispiel

Das folgende Beispiel zeigt die Verwendung der virtuellen Wiederholung.

am_virtualrepeat.htm

<html lang = "en">
   <head>
      <link rel = "stylesheet"
         href = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
      <link rel = "stylesheet" href = "https://fonts.googleapis.com/icon?family=Material+Icons">
      
      <style>
         .vrepeatContainer #horizontal-container {
            height: 100px;
            width: 830px; 
         }

         .vrepeatContainer #vertical-container {
            height: 292px;
            width: 400px; 
         }

         .vrepeatContainer .repeated-item-horizontal {
            border-right: 1px solid #ddd;
            box-sizing: border-box;
            display: inline-block;
            height: 84px;
            padding-top: 35px;
            text-align: center;
            width: 50px; 
         }

         .vrepeatContainer .repeated-item-vertical {
            border-bottom: 1px solid #ddd;
            box-sizing: border-box;
            height: 40px;
            padding-top: 10px;
         }

         .vrepeatContainer md-content {
            margin: 16px; 
         }
         
         .vrepeatContainer md-virtual-repeat-container {
            border: solid 1px grey; 
         }	  
      </style>
      
      <script language = "javascript">
         angular
            .module('firstApplication', ['ngMaterial'])
            .controller('vrepeatController', vrepeatController);
           
         function vrepeatController ($scope) { 
            this.items = [];
            for (var i = 0; i < 1000; i++) {
               this.items.push(i);
            }
         }	  
      </script>      
   </head>
   
   <body ng-app = "firstApplication"> 
      <div class = "vrepeatContainer" ng-controller = "vrepeatController as ctrl"
         ng-cloak>
         <md-content layout = "column">
            <h2>Horizontal Repeat</h2>
            <md-virtual-repeat-container id = "horizontal-container" md-orient-horizontal>
               <div md-virtual-repeat = "item in ctrl.items"
                  class = "repeated-item-horizontal" flex>
                  {{item}}
               </div>
            </md-virtual-repeat-container>
            
            <h2>Vertical Repeat</h2>
            <md-virtual-repeat-container id = "vertical-container">
               <div md-virtual-repeat = "item in ctrl.items"
                  class = "repeated-item-vertical" flex>
                  {{item}}
               </div>
            </md-virtual-repeat-container>
            
         </md-content>
      </div>
   </body>
</html>

Ergebnis

Überprüfen Sie das Ergebnis.