计算 angularjs 中的 ng-if true 语句?
Count ng-if true statements in angularjs?
我有一个页面使用 ng-ifs 显示不同的数据,我需要在同一页面上显示其中有多少是正确的。只是数字。 HTML 很复杂,但我做了一个更简单的版本来理解它是如何工作的。这是 HTML 的样子,数据也在页面上进行操作,因此 ng-if 值在呈现后可能会发生变化,因此页面上的计数也应该随之变化。
<div ng-if="abc">
some data 1
</div>
<div ng-if="!abc">
some data 2
</div>
<div ng-if="xyz">
some data 3
</div>
<div ng-if="abc">
some data 4
</div>
<div ng-if="!xyz">
some data 5
</div>
我也做了一个plnkr。
http://plnkr.co/edit/5wdiSLhbHpOPJGjRn47L?p=preview
谢谢。
一个纯粹的JavaScript解决方案可能是向具有ng-if
条件的HTML元素添加一个class(或一个属性),然后使用document.getElementsByClassName('class-name').length
获取满足 ng-if
条件的元素的数量。
示例:
<div class="sample-class" ng-if="abc">
some data 1
</div>
<div class="sample-class" ng-if="!abc">
some data 2
</div>
<div class="sample-class" ng-if="xyz">
some data 3
</div>
<div class="sample-class" ng-if="abc">
some data 4
</div>
<div class="sample-class" ng-if="!xyz">
some data 5
</div>
<div>Total count is: {{getCount(); totalCount}}</div>
<script type="text/javascript">
angular.module('app', [])
.controller('ctrl', function($scope, $timeout) {
$scope.totalCount = 0;
$scope.getCount = function(){
$timeout(function(){
$scope.totalCount = document.getElementsByClassName('sample-class').length;
});
};
});
</script>
我有一个页面使用 ng-ifs 显示不同的数据,我需要在同一页面上显示其中有多少是正确的。只是数字。 HTML 很复杂,但我做了一个更简单的版本来理解它是如何工作的。这是 HTML 的样子,数据也在页面上进行操作,因此 ng-if 值在呈现后可能会发生变化,因此页面上的计数也应该随之变化。
<div ng-if="abc">
some data 1
</div>
<div ng-if="!abc">
some data 2
</div>
<div ng-if="xyz">
some data 3
</div>
<div ng-if="abc">
some data 4
</div>
<div ng-if="!xyz">
some data 5
</div>
我也做了一个plnkr。 http://plnkr.co/edit/5wdiSLhbHpOPJGjRn47L?p=preview
谢谢。
一个纯粹的JavaScript解决方案可能是向具有ng-if
条件的HTML元素添加一个class(或一个属性),然后使用document.getElementsByClassName('class-name').length
获取满足 ng-if
条件的元素的数量。
示例:
<div class="sample-class" ng-if="abc">
some data 1
</div>
<div class="sample-class" ng-if="!abc">
some data 2
</div>
<div class="sample-class" ng-if="xyz">
some data 3
</div>
<div class="sample-class" ng-if="abc">
some data 4
</div>
<div class="sample-class" ng-if="!xyz">
some data 5
</div>
<div>Total count is: {{getCount(); totalCount}}</div>
<script type="text/javascript">
angular.module('app', [])
.controller('ctrl', function($scope, $timeout) {
$scope.totalCount = 0;
$scope.getCount = function(){
$timeout(function(){
$scope.totalCount = document.getElementsByClassName('sample-class').length;
});
};
});
</script>