Maison  >  Article  >  interface Web  >  Comment surveiller si les données de la liste angulaireJs sont rendues

Comment surveiller si les données de la liste angulaireJs sont rendues

php中世界最好的语言
php中世界最好的语言original
2018-02-27 10:11:591658parcourir

Cette fois, je vais vous montrer comment surveiller angularJs si les données de la liste sont rendues et surveiller si les données de la liste angulaireJs sont rendues Quelles sont les précautions Voici les cas pratiques ? . Jetons un coup d'oeil une fois.

Lorsque le front-end effectue le rendu des données, il est souvent constaté que certaines opérations sont effectuées après le rendu des données. Au cours des derniers jours, les opérations de clic et de sélection sont effectuées après les listes et les tableaux. sont rendus. Pour qu'angularjs puisse gérer ce type de problème, le meilleur moyen est d'utiliser des directives.

Tout d'abord, définissez l'instruction :

app.directive('onfinishrenderfilters', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            if (scope.$last === true) {    //判断是否是最后一条数据
                $timeout(function () {
                    scope.$emit('ngRepeatFinished'); //向父级scope传送ngRepeatFinished命令
                });
            }
        }
    };
});

Deuxièmement, une fois l'instruction définie, vous devez ajouter l'instruction à la balise d'itération, voici la balise a34de1251f0d9fe1e645927f19a896e8 >

<div class="fixed-table-container" style="margin-right: 0px;">
    <table class="table table-hover lamp-table">
        <thead>
        <tr>
            <th></th>
            <th style="text-align: center; " data-field="name_device-id" tabindex="0"
                ng-repeat="i in provider.geoZoneListHead track by $index" ng-hide=i.bol>
                <div class="th-inner sortable " style="padding-right: 10px">{{i.name}}
                </div>
                <div class="fht-cell" style="width: 101px;"></div>
            </th>
        </tr>
        </thead>
        <tbody>
        <tr ng-repeat="i in provider.geoZoneList" onfinishrenderfilters>
            <td><input data-index="0" name="btSelectItem" type="radio"
                       value="{{$index}}" ng-click="selectInput($index)"></td>
            <td class="nameId0">{{$index+1}}</td>
            <td class="nameId1">{{i.geoZoneName}}</td>
            <td class="nameId2">{{i.description}}</td>
            <td class="nameId3">{{i.totalNumberOfMembers}}</td>
            <td class="nameId4">{{i.country}}</td>
            <td class="nameId5">{{i.lastUpdateDate}}</td>
        </tr>
        </tbody>
    </table>
</div>
Enfin, une fois le dernier élément de données rendu, $emit est utilisé pour envoyer des événements (commandes) à la portée parent, et $brodercast est utilisé pour envoyer des événements (commandes) à la portée enfant. Et $scope.$on() écoute les événements, surveillant si $emit ou $brodercast renvoie l'événement (commande). Si l'événement a été renvoyé, cela signifie que les données ont été restituées et que d'autres opérations peuvent être effectuées. à l'avenir.

$scope.$on(&#39;ngRepeatFinished&#39;, function (ngRepeatFinishedEvent) {    var btnList = $("input[name=&#39;btSelectItem&#39;]");
    btnList.eq(0).attr("checked","checked");
    $scope.provider.detalOutlet();
});
Je pense que vous maîtrisez les méthodes après avoir lu ces cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Explication détaillée du processus de rendu du navigateur

Résumé du modèle de boîte en HTML

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn