Maison  >  Questions et réponses  >  le corps du texte

angular.js - angularjs 用ng-reapt渲染的dom 怎么获取上面的属性

angularjs 用ng-reapt渲染的dom 怎么获取上面的属性

PHP中文网PHP中文网2714 Il y a quelques jours620

répondre à tous(2)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-05-15 17:15:44

    Les données de vos attributs sont à l'origine recyclées, récupérez simplement les données directement. Ne pensez jamais à la méthode de jq

    .
    repeat-finish=renderFinish(item)
    $scope.renderFinish=function(item){
      ...
      kit.log(item.id)
    }

    répondre
    0
  • 怪我咯

    怪我咯2017-05-15 17:15:44

    Merci pour l'invitation, la méthode de @crazy4x est également OK. data-* Dans les scénarios d'application généraux, le framework MV* n'est pas utilisé et le proxy d'événements est utilisé pour éviter d'avoir à ajouter/supprimer manuellement des écouteurs lorsque les données de la liste changent. En ajoutant un écouteur au parent, puis en obtenant l'objet événement, puis en obtenant la valeur de l'attribut personnalisé de l'élément actuel dans la liste, l'exemple suivant fournit une autre méthode, à titre de référence uniquement.

    <!DOCTYPE html>
    <html lang="en" ng-app="myapp">
    <head>
        <meta charset="UTF-8">
        <title>Angular Repeat-Done Demo</title>
        <script src="https://cdn.bootcss.com/angular.js/1.6.3/angular.min.js"></script>
    </head>
    <body ng-app="myapp">
    <p ng-controller="AppCtrl">
        <h4>Users List</h4>
        <ul>
            <li ng-repeat="user in users" repeat-done="renderFinish($index)"> // user
                {{user.id}} - {{user.name}}
            </li>
        </ul>
    </p>
    <script type="text/javascript">
        var myapp = angular.module("myapp", [])
                .directive('repeatDone', function () { // 用于判断ng-repeat是否执行完成
                    return function (scope, element, attrs) {
                        if (scope.$last) { // all are rendered
                            attrs.repeatDone && scope.$eval(attrs.repeatDone);
                        }
                    }
                })
                .controller("AppCtrl", ['$scope', function ($scope) {
                    $scope.users = [{
                        id: 1,
                        name: 'Lolo'
                    }, {
                        id: 2,
                        name: 'Semlinker'
                    }];
    
                    $scope.renderFinish = function(index) { // user对象
                        console.log(index);
                    };
                }])
    </script>
    </body>
    </html>

    répondre
    0
  • Annulerrépondre