2017-05-07 154 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