Material angular - Repetición virtual
los md-virtual-repeat-container es el contenedor de desplazamiento para el componente md-virtual-repeat.
Atributos
La siguiente tabla enumera los parámetros y la descripción de los diferentes atributos de md-virtual-repeat-container.
No Señor | Descripción de parámetros |
---|---|
1 | md-top-index Vincula el índice del elemento que se encuentra en la parte superior del contenedor de desplazamiento a $ scope. Puede leer y establecer la posición de desplazamiento. |
2 | md-orient-horizontal Determina si el contenedor debe desplazarse horizontalmente (el valor predeterminado es la orientación y el desplazamiento vertical). |
3 | md-auto-shrink Cuando está presente, el contenedor se encogerá para ajustarse al número de artículos cuando ese número sea menor que su tamaño original. |
4 | md-auto-shrink-min Número mínimo de elementos a los que md-auto-shrink se reducirá (predeterminado: 0). |
md-virtual-repeat
La repetición virtual es un sustituto de ng-repeat para representar solo los elementos html suficientes para llenar el contenedor y reutilizarlos cuando el usuario se desplaza.
Atributos
La siguiente tabla enumera los parámetros y la descripción de los diferentes atributos de md-virtual-repeat.
No Señor | Descripción de parámetros |
---|---|
1 | md-item-size El alto o ancho de los elementos repetidos (que deben ser idénticos para cada elemento). Esto es opcional. Esto intenta leer el tamaño del dom si falta, pero aún asume que todos los nodos repetidos tienen la misma altura o ancho. |
2 | md-extra-name Evalúa a un nombre adicional al que se puede asignar el elemento iterado actual en el alcance repetido (necesario para su uso en md-autocomplete). |
3 | md-on-demand Cuando está presente, trata el md-virtual-repeat argumento como un objeto que puede obtener filas en lugar de una matriz. Este objeto debe implementar la siguiente interfaz con dos (2) métodos:
|
Ejemplo
El siguiente ejemplo muestra el uso de la repetición virtual.
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>
Resultado
Verifica el resultado.