计算属性

时间:2015-11-22 17:23:55

标签: angularjs

在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);
    }

});

1 个答案:

答案 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