AngularJS - 如何计算 ng-repeat 的过滤对象
AngularJS - how count filtered objects of ng-repeat
我正在处理一个包含许多过滤器的活动页面。用户可以按严重性、描述和持续时间过滤事件。事件的严重级别可以是 'critical'、'warning'、'ok'。谁能告诉我如何计算每个严重程度的 filtered 事件的数量?我期待这样的事情
关键事件数:4
警告事件数:7
Ok 事件数:2
当筛选事件的数量发生变化时,这些数字也会随之变化。非常感谢。
Json
{
'severity': 'Critical',
'description': 'content1',
'duration': 1
}
{
'severity': 'Warning',
'description': 'content2',
'duration': 2
}
{
'severity': 'ok',
'description': 'content3'
'duration': 3
}
HTML
<input type='text' ng-model='search.description'>
<input type='text' ng-model='search.severity'>
<input type='text' ng-model='search.duration'>
<div ng-repeat='eventData in eventsData | filter:search:strict>
<div>eventData.severity</div>
<div>eventData.description</div>
<div>eventData.duration</div>
</div>
您可以通过 过滤 eventsData 数组与 搜索过滤器 相结合来实现,然后得到 长度.
例如
{{(eventsData | filter:search:strict | filter:'Critical').length}}
{{(eventsData | filter:search:strict | filter:'Warning').length}}
{{(eventsData | filter:search:strict | filter:'ok').length}}
你的HTML
<div ng-controller="YourCtrl">
<input type="text" ng-model="search.description" />
<br />
<br />
<input type="text" ng-model="search.severity" />
<br />
<br />
<input type="text" ng-model="search.duration" />
<br />
<br />
<p>Number of Critical Events: {{(eventsData | filter:search:strict | filter:'Critical').length}}</p>
<p>Number of Warning Events: {{(eventsData | filter:search:strict | filter:'Warning').length}}</p>
<p>Number of Ok Events: {{(eventsData | filter:search:strict | filter:'ok').length}}</p>
<br />
<div ng-repeat="eventData in eventsData | filter:search:strict">
<div> {{eventData.severity}} </div>
<div> {{eventData.description}} </div>
<div> {{eventData.duration}} </div>
</div>
</div>
你的JS
'use strict';
var app = angular.module('myApp', []);
app.controller('YourCtrl', ['$scope', function($scope) {
$scope.eventsData = [
{
'severity': 'Critical',
'description': 'content1',
'duration': 1
}, {
'severity': 'Warning',
'description': 'content2',
'duration': 2
}, {
'severity': 'ok',
'description': 'content3',
'duration': 3
}, {
'severity': 'Warning',
'description': 'content2',
'duration': 2
}, {
'severity': 'ok',
'description': 'content3',
'duration': 3
}
];
}]);
希望对您有所帮助。
我正在处理一个包含许多过滤器的活动页面。用户可以按严重性、描述和持续时间过滤事件。事件的严重级别可以是 'critical'、'warning'、'ok'。谁能告诉我如何计算每个严重程度的 filtered 事件的数量?我期待这样的事情
关键事件数:4
警告事件数:7
Ok 事件数:2
当筛选事件的数量发生变化时,这些数字也会随之变化。非常感谢。
Json
{
'severity': 'Critical',
'description': 'content1',
'duration': 1
}
{
'severity': 'Warning',
'description': 'content2',
'duration': 2
}
{
'severity': 'ok',
'description': 'content3'
'duration': 3
}
HTML
<input type='text' ng-model='search.description'>
<input type='text' ng-model='search.severity'>
<input type='text' ng-model='search.duration'>
<div ng-repeat='eventData in eventsData | filter:search:strict>
<div>eventData.severity</div>
<div>eventData.description</div>
<div>eventData.duration</div>
</div>
您可以通过 过滤 eventsData 数组与 搜索过滤器 相结合来实现,然后得到 长度.
例如
{{(eventsData | filter:search:strict | filter:'Critical').length}}
{{(eventsData | filter:search:strict | filter:'Warning').length}}
{{(eventsData | filter:search:strict | filter:'ok').length}}
你的HTML
<div ng-controller="YourCtrl">
<input type="text" ng-model="search.description" />
<br />
<br />
<input type="text" ng-model="search.severity" />
<br />
<br />
<input type="text" ng-model="search.duration" />
<br />
<br />
<p>Number of Critical Events: {{(eventsData | filter:search:strict | filter:'Critical').length}}</p>
<p>Number of Warning Events: {{(eventsData | filter:search:strict | filter:'Warning').length}}</p>
<p>Number of Ok Events: {{(eventsData | filter:search:strict | filter:'ok').length}}</p>
<br />
<div ng-repeat="eventData in eventsData | filter:search:strict">
<div> {{eventData.severity}} </div>
<div> {{eventData.description}} </div>
<div> {{eventData.duration}} </div>
</div>
</div>
你的JS
'use strict';
var app = angular.module('myApp', []);
app.controller('YourCtrl', ['$scope', function($scope) {
$scope.eventsData = [
{
'severity': 'Critical',
'description': 'content1',
'duration': 1
}, {
'severity': 'Warning',
'description': 'content2',
'duration': 2
}, {
'severity': 'ok',
'description': 'content3',
'duration': 3
}, {
'severity': 'Warning',
'description': 'content2',
'duration': 2
}, {
'severity': 'ok',
'description': 'content3',
'duration': 3
}
];
}]);
希望对您有所帮助。