Rumah  >  Soal Jawab  >  teks badan

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

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

PHP中文网PHP中文网2714 hari yang lalu617

membalas semua(2)saya akan balas

  • 我想大声告诉你

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

    Data atribut anda pada asalnya dikitar semula, cuma dapatkan data secara langsung Jangan sekali-kali memikirkan kaedah jq

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

    balas
    0
  • 怪我咯

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

    Terima kasih atas jemputan, kaedah @crazy4x juga OK. data-* Dalam senario aplikasi umum, rangka kerja MV* tidak digunakan dan proksi acara digunakan untuk mengelakkan keperluan menambah/mengalih keluar pendengar secara manual apabila data senarai berubah. Dengan menambahkan pendengar kepada induk, kemudian mendapatkan objek acara, dan kemudian mendapatkan nilai atribut tersuai item semasa dalam senarai, contoh berikut menyediakan cara lain, untuk rujukan sahaja.

    <!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>

    balas
    0
  • Batalbalas