2017-06-13 81 views
0

我是新的角度。所以跳过很多网站阅读角码代码示例的不错文章。所以今天我访问了一个网站http://www.dotnetawesome.com/2016/03/infinite-scroll-for-facebook-like-pagination-angularjs.htmlAngularJS:用ng-repeat无限滚动

这里有一个例子,就像如何用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); 
    } 
} 

告诉我这是什么意思与指令名

<div infinityscroll="NextPage()" style="height:400px; overflow:auto;">分配功能的名称?

这是否意味着当指令将加载然后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)

因此我新,所以我阅读角JS V1 +文章的时候摸索的含义。所以请详细回答我的2个问题以指导我。谢谢

回答

0

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

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

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

+0

抱歉,这是不明确的范围。$应用(attr.infinityscroll)告诉角运行表达式运行后摘要循环。可以给我更多关于这一行范围的知识。$ apply(attr.infinityscroll) –

+0

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