【问题标题】:AngularJS: infinite scroll with ng-repeatAngularJS:使用 ng-repeat 无限滚动
【发布时间】:2017-06-13 14:45:48
【问题描述】:

我是角度方面的新手。所以跳很多网站来阅读关于角度代码示例的好文章。所以今天我访问了一个网站http://www.dotnetawesome.com/2016/03/infinite-scroll-for-facebook-like-pagination-angularjs.html

附带一个示例,例如如何使用 angularJS 创建无限滚动。

在这里,我将发布一些我不清楚的问题。所以请大家回答和指导文章中的那些语法和代码,因为我需要理解。

1) 有一个名为NextPage() 的函数,其函数名称已被指定为指令名称,如<div infinityscroll="NextPage()" style="height:400px; overflow:auto;">

$scope.NextPage = function () {
    if ($scope.CurrentPage < $scope.TotalPage) {
        $scope.CurrentPage += 1;
        GetEmployeeData($scope.CurrentPage);
    }
}

告诉我用指令名称分配函数名称是什么意思

&lt;div infinityscroll="NextPage()" style="height:400px; overflow:auto;"&gt;?

是指什么时候加载指令然后调用 NextPage() 函数还是有不同的含义?

2) 先看指令代码

app.directive('infinityscroll', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            element.bind('scroll', function () {
                if ((element[0].scrollTop + element[0].offsetHeight) == element[0].scrollHeight) {
                    //scroll reach to end
                    scope.$apply(attrs.infinityscroll)
                }
            });
        }
    }
});

这行scope.$apply(attrs.infinityscroll)是什么意思

因此我是新手,所以在阅读有关 Angular js v1+ 的文章时我会摸索。所以请详细回答我的2个问题以指导我。谢谢

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    NextPage() 是当无限滚动插件检测到用户滚动到页面末尾或指令末尾时评估的表达式。

    scope.$apply(attr.infinityscroll) 告诉 Angular 在评估表达式后运行摘要循环。

    https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply

    【讨论】:

    • 抱歉,范围不清楚。$apply(attr.infinityscroll) 告诉 Angular 在表达式运行后运行摘要循环。可以给我更多关于这条线范围的知识。$apply(attr.infinityscroll)
    猜你喜欢
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多