suchen

Heim  >  Fragen und Antworten  >  Hauptteil

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

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

PHP中文网PHP中文网2875 Tage vor734

Antworte allen(2)Ich werde antworten

  • 我想大声告诉你

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

    你属性的数据本来就是循环出来的,直接去获取数据就可以了,思路上永远不要想jq的方法

    1

    <code>repeat-finish=renderFinish(item)</code>

    1

    2

    3

    4

    <code>$scope.renderFinish=function(item){

      ...

      kit.log(item.id)

    }</code>

    Antwort
    0
  • 怪我咯

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

    谢邀,@crazy4x的方式也是OK的。data-* 的一般应用场景,没使用MV*框架,使用事件代理的方式,避免列表数据变化时,需要手动添加/移除监听。通过在父级添加监听,然后获取事件对象,然后获取列表当前项的自定义属性值,下面示例提供另外一种方式,仅供参考。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

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

    Antwort
    0
  • StornierenAntwort