2017-06-13 83 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 –