我正在制作仪表板,我想要一些帮助'_'。
我从API获取了一个JSON,我得到一个包含5个元素的数组,每个元素都包含这个结构(我简化了它,但它接近于它)。
{
"app_id": "id",
"app_name": "name",
"users_percentiles": {
"users_percentile_1": "3408",
"users_percentile_2": "2356",
"users_percentile_3": "988",
"users_percentile_4": "1099",
}
}
然后,我使用表格在仪表板中组织这些元素。
<tbody ng-repeat="dash in dashboard">
<tr>
<td>{{dash.app_id}}</td>
<td>{{dash.app_name}}</td>
<td ng-repeat="percentile in dash.users_percentiles">
{{(percentile}}%
</td>
</tr>
</tbody>
我希望每个ng-repeat突出显示百分位数的最高值(如果两个是等于,则两者都应突出显示)。
我想我应该添加类似的内容:
ng-class="{max : percentile == maxPercentile}"
和一个功能:
$scope.maxPercentile = -1;
angular.forEach(percentiles, function (percentile) {
if (percentile > $scope.maxPercentile) {
$scope.maxPercentile = percentile;
}
});
但我真的不知道在哪里使用这种方法。
我尝试了一个$ watch,但无论我怎么尝试,我都没有让它工作......
答案 0 :(得分:0)
<tbody ng-repeat="dash in dashboard">
<tr>
<td>{{dash.app_id}}</td>
<td ng-init = "maxpercentile = getMaxPercentile(dash.users_percentiles)">{{dash.app_name}}</td>
<td ng-class="{max : percentile === maxpercentile}"
ng-repeat="percentile in dash.users_percentiles">
{{percentile}}%
</td>
</tr>
</tbody>
$scope.getMaxPercentile = function(percentiles){
var maxPercentile = -1;
angular.forEach(percentiles, function (percentile) {
if (percentile > $scope.maxPercentile) {
maxPercentile = percentile;
}
});
return maxPercentile;
}