1

Je voudrais faire paginations comme des dans ce lien How to use UI Bootstrap Pagination for a table, generated using ng-repeatcomment puis-je utiliser la pagination ui bootstrap avec AngularJS composante 1.6

J'ai lu les documents ici https://angular-ui.github.io/bootstrap/#!#getting_started ng-modèle = « pageNumber », mais je n » Je ne sais pas ce que l'on entend par «Ce paramètre a un programme d'écoute $ watch angulaire appliqué», par exemple, ng-model a un programme d'écoute $ watch.

J'utilise des composants. Qu'entend-on par $ watch listener et comment utiliser $ watch à l'intérieur d'un composant. Est-ce même possible ou existe-t-il une manière différente? checkout mon plunker pour tout le code. https://plnkr.co/edit/E2dKJx2PB1BXsE9hFkte?p=preview

réservation-list.html

<ul 
uib-pagination 
ng-model="$ctrl.currentPage" 
items-per-page="$ctrl.itemsPerPage" 
total-items="$ctrl.bookings.length" 
max-size="$ctrl.maxSize"> 
</ul> 
<table> 
    ... 
    <tr ng-repeat="booking in $ctrl.bookings"> 
     ... 
    </tr> 
    </tbody> 
</table> 

que dois-je faire pour faire ce travail?

app.component('bookingList', { 
    templateUrl: 'booking-list.html', 
    controller: ['BookingSvc', function(BookingSvc) { 
     let self = this; 

     self.bookings = BookingSvc.query(); 

     self.maxSize = 2; 
     self.currentPage = 1; 
     self.itemsPerPage = 2; 

     // what should I do to make this work? 
     /*$scope.$watch("currentPage", function() { 
     setPagingData(self.currentPage); 
     }); 

     function setPagingData(page) { 
     let pagedData = self.bookings.slice(
      (page - 1) * self.itemsPerPage, 
      page * self.itemsPerPage 
     ); 
     self.pagedBookings = pagedData; 
     }*/ 

    }] 
    }); 

Répondre

1

Utilisez le $doCheck cycle de vie Crochet

Avec la version 1.5.8 , AngularJS a ajouté le crochet du cycle de vie $doCheck au service $compile.

De la documentation:

Le contrôleur peut fournir méthodes suivantes qui agissent comme des crochets de cycle de vie:

  • $doCheck() - appelé à chaque tour du cycle de digestion. Fournit une opportunité de détecter et d'agir sur les changements. Toutes les actions que vous souhaitez effectuer en réponse aux modifications détectées doivent être appelées depuis ce hook; la mise en œuvre de cela n'a aucun effet sur quand $onChanges est appelée. Par exemple, ce hook pourrait être utile si vous souhaitez effectuer une vérification d'égalité en profondeur, ou pour vérifier un objet Date, changements qui ne seraient pas détectés par le détecteur de changement d'Angular et ne déclencheraient donc pas $onChanges. Ce hook est appelé sans arguments; Si vous détectez des modifications, vous devez stocker la (les) valeur (s) précédente (s) pour la comparer aux valeurs actuelles.

- AngularJS Comprehensive Directive API Reference -- Life-cycle hooks