2017-05-07 229 views
0

因此我從服務器端發現了關於分頁的代碼,除了它對此部分做了什麼以外,我知道所有的東西,我知道控制器正在觀察currentPage,但沒有活動變量,我不知道在冒號後加倍是否意味着什麼。在AngularJS中結尾意味着什麼double意味着

HTML &角控制器:

app.controller("myController", function ($scope, Student) { 
 
\t $scope.studentsPerPage = 5; 
 
\t $scope.currentPage = 0; 
 
\t $scope.range = function() { 
 
\t \t var rangeSize = 5; 
 
\t \t var ret = []; 
 
\t \t var start = $scope.currentPage; 
 
\t \t if (start > $scope.pageCount() - rangeSize) { 
 
\t \t \t start = $scope.pageCount() - rangeSize; 
 
\t \t } 
 
\t \t for (var i=start; i<start + rangeSize; i++) { 
 
\t \t \t ret.push(i); 
 
\t \t } 
 
\t \t return ret; 
 
\t }; 
 
\t $scope.$watch("currentPage", function(newValue, oldValue) { 
 
\t \t $scope.pagedStudents = Student.get(newValue*$scope.studentsPerPage, $scope.studentsPerPage); 
 
\t \t $scope.total = Student.total(); 
 
\t }); 
 
\t $scope.prevPage = function() { 
 
\t \t if ($scope.currentPage > 0) { 
 
\t \t \t $scope.currentPage--; 
 
\t \t } 
 
\t }; 
 
\t $scope.prevPageDisabled = function() { 
 
\t \t return $scope.currentPage === 0 ? "disabled" : ""; 
 
\t }; 
 
\t $scope.nextPage = function() { 
 
\t \t if ($scope.currentPage < $scope.pageCount()) { 
 
\t \t \t $scope.currentPage++; 
 
\t \t } 
 
\t }; 
 
\t $scope.nextPageDisabled = function() { 
 
\t \t return $scope.currentPage >= ($scope.pageCount() -1) ? "disabled" : ""; 
 
\t }; 
 
\t $scope.pageCount = function() { 
 
\t \t return Math.ceil(Student.total()/$scope.studentsPerPage); 
 
\t }; 
 
\t $scope.setPage = function(n) { 
 
\t \t $scope.currentPage = n; 
 
\t }; 
 
});
<li data-ng-repeat="n in range()" data-ng-class="{active: n == currentPage}" data-ng-click="setPage(n)"> 
 
\t \t \t <a href="#">{{n+1}}</a> 
 
</li>

這是整個和唯一的控制器,學生是一個工廠,我這個從HTTP GET取一個文件創建。唯一的一點是我對冒號後的比較感到困惑,無法觀看當前頁面。感謝任何回答的人,我很感激!

+0

有是沒有這樣的語法,如_「雙等於冒號」_,'{active:n == currentPage}'是一個具有'active'屬性的對象字面值,其值是通過評估表達式'n == currentPage' (它應該使用'===',但這是另一個話題)。 –

回答

0

您正在尋找ngClass

評價的結果可以是代表空間分隔的類名的字符串,數組或類名的地圖上,以布爾值。在地圖的情況下,值爲truthy的屬性的名稱將作爲css類添加到元素中。

data-ng-class="{active: n == currentPage}" 

這樣做是類active添加到元素如果表達式n == currentPage是truthy。您可以添加更多類別表達對

data-ng-class="{active: n == currentPage, hidden: n == 0, answer: n == 42}" 
0

我假設您對您的綁定感到困惑data-ng-class="{active: n == currentPage}"?如果是這樣,n是循環中的當前索引,並且綁定是在設置活動類,如果n等於您的currentPage變量。

0

它用於同步ncurrentPage。這裏有一個故障:

data-ng-repeat="n in range()":讓我循環通過range()中的值。對於每次迭代,我將用於指定當前循環值的變量將爲n

data-ng-class="{active: n == currentPage}":現在我想知道哪個是活動循環值。所以我可以使用n和同步currentPage!與此同時。我也將使用active類被應用到n

當前循環值,爲什麼你會想保持這個的原因是因爲傻冒然後在你的控制器引用currentPage