我正在使用ng-class(来自angularjs)将类分配给分页表中的活动页码。当按下“跳过10页”按钮时,它会调用一个函数并最终到达此处:
if (this.scope.currentPage <= this.scope.lastPage - this.scope.pageNumbersGroupSize) {
this.scope.currentPage += this.scope.pageNumbersGroupSize;
} else {
while (this.scope.currentPage < this.scope.lastPage) {
this.scope.currentPage++;
}
//this.scope.currentPage = this.scope.lastPage;
}
原始if语句中的代码按预期工作,但else中的代码不能。最初我只有在else语句中注释掉的行:
this.scope.currentPage = this.scope.lastPage;
但由于某种原因,它没有激活我的HTML中的类:
<a ng-class="{'selectedPage' : pageNumber === currentPage, 'grayText' :
pageNumber !== currentPage}" ng-repeat="pageNumber in pageNumbers"
style="margin-right: 4px; cursor: pointer;" ng-click="goToPage(pageNumber)">
{{pageNumber}}
</a>
在pageNumber === currentPage的html中,应该使用class selectedPage。它不在原始代码中。然后,只是为了检查分配是否由于我使用的某些原因而不是相同的参考:
this.scope.currentPage = angular.copy(this.scope.lastPage);
这仍然无效。所以,我尝试了现在顶部代码中的while循环。这确实有效。有人可以解释为什么我的原始代码不起作用?此外,是否有更好的方法来解决这个问题,而不是把那个while循环放在那里?谢谢!
答案 0 :(得分:0)
弄明白了:这是因为我使用的是= =而不是==而我用于lastPage的变量是从数据库存储过程作为字符串而不是数字返回的。它将字符串与带有===的数字进行比较,它们不相等。我刚刚从DB返回的值上使用了parseInt()并且它是固定的。