包装ng-repeat

时间:2013-06-17 14:38:06

标签: angularjs angularjs-ng-repeat

我想写一个paginated指令,它就像ng-repeat一样,但是首先预处理迭代集合(用于分页)。我以为我可以这样做:

<tr paginated="item for item in list" page="3" per-page="10">
     <td>[[item.foo]]</td>
     <td>[[item.bar]]</td>
</tr>

我想以某种方式重复使用ng-repeat来实现这一点,但是我给它的一些模糊尝试都没有用。我怎么能这样做?

这是我想出的最好的(注意它甚至不完全一样):

app.directive('paginated', function() {
    return {
        replace: true,
        transclude: true,
        scope: {
            data: '=',
            perPage: '@',

        },
        template:
            '<div ng-repeat="item for item in l"><div ng-transclude></div>',

        link: function(scope, elem, attrs, ngRepeat) {
            scope.l = data;
            // do stuff with scope.l
        },
    }
});

1 个答案:

答案 0 :(得分:2)

您可以使用过滤器进行分页,这是另一个stackoverflow问题,您可以在其中查看它是如何实现的:Pagination on a list using ng-repeat