Matériau angulaire - Répétition virtuelle
le md-virtual-repeat-container est le conteneur de défilement du composant md-virtual-repeat.
Les attributs
Le tableau suivant répertorie les paramètres et la description des différents attributs de md-virtual-repeat-container.
Sr.Non | Paramètre et description |
---|---|
1 | md-top-index Lie l'index de l'élément qui se trouve en haut du conteneur de défilement à $ scope. Il peut à la fois lire et définir la position de défilement. |
2 | md-orient-horizontal Détermine si le conteneur doit défiler horizontalement (par défaut, orientation et défilement vertical). |
3 | md-auto-shrink Lorsqu'il est présent, le conteneur se rétrécit pour s'adapter au nombre d'articles lorsque ce nombre est inférieur à sa taille d'origine. |
4 | md-auto-shrink-min Nombre minimum d'éléments auxquels md-auto-shrink sera réduit (par défaut: 0). |
md-répétition virtuelle
La répétition virtuelle est un substitut à ng-repeat pour ne rendre que suffisamment d'éléments html pour remplir le conteneur et les réutiliser lorsque l'utilisateur fait défiler.
Les attributs
Le tableau suivant répertorie les paramètres et la description des différents attributs de md-virtual-repeat.
Sr.Non | Paramètre et description |
---|---|
1 | md-item-size La hauteur ou la largeur des éléments répétés (qui doivent être identiques pour chaque élément). Ceci est facultatif. Cela tente de lire la taille du dom s'il manque, mais suppose toujours que tous les nœuds répétés ont la même hauteur ou largeur. |
2 | md-extra-name Évalue un nom supplémentaire auquel l'élément itéré actuel peut être attribué sur la portée répétée (nécessaire pour une utilisation dans md-autocomplete). |
3 | md-on-demand Lorsqu'il est présent, traite le md-virtual-repeat comme un objet qui peut récupérer des lignes plutôt qu'un tableau.Cet objet doit implémenter l'interface suivante avec deux (2) méthodes -
|
Exemple
L'exemple suivant montre l'utilisation de la répétition virtuelle.
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>
Résultat
Vérifiez le résultat.