在AngularJS中,如何计算特定属性的出现次数(在这种情况下为data-page
)?
我有几个伪页面在刷卡时显示给用户,我希望防止页面计数器超过页数。我按照以下方式设置了容器,但如果有人对我如何做到这一点有任何更好的想法,我会接受建议 -
我的HTML(示例) -
<body class="single single-post postid-5 single-format-standard ng-scope" data-ng-swipe-right="prevPage()" data-ng-swipe-left="nextPage()" data-ng-controller="bodyCtrl">
<div id="main">
<div class="container">
<div class="allowed page page-1 visible" data-page="1">
<div class="mask"></div>
<div class="inner">
{ page content }
</div>
</div>
</div>
</div>
</body>
我的控制器 -
myApp.controller('bodyCtrl', function($scope){
$scope.currentPage = 1;
$scope.getMaxPage = function(){
{ Not sure how??? }
}
$scope.maxPage = $scope.getMaxPage();
$scope.nextPage = function(){
$scope.currentPage = ($scope.currentPage >= $scope.maxPage) ? $scope.maxPage : $scope.currentPage + 1;
}
$scope.prevPage = function(){
$scope.currentPage = ($scope.currentPage > 1) ? $scope.currentPage - 1 : 1;
}
$scope.isVisible = function(page){
return ($scope.currentPage >= page);
}
});
答案 0 :(得分:2)
我认为你可以使用jquery选择计数,如果你正在使用jquery和angular,或者你喜欢这样做,那就去吧。
//count the number of occurrences of the `data-page` attribute.
var count = $('[data-page]').length;
这是一个DEMO
如果您不想使用jquery
,请使用普通的旧JavaScript方式进行操作。
//select all element with the data-page attribute
var elements = document.querySelectorAll('[data-page]');
var count = elements.length; // get the number of occurrences.
这是一个DEMO