AngularJS:重复并按数字范围过滤
AngularJS: Repeat and filter by number range
我正在尝试格式化一个"分数"系统。我的json返回的是一个"title"和一个"score"——理想情况下,我希望它的格式如下:
100--------
标题--99
标题--91
90--------
标题-89
标题--81
80---(等)
我已经做到了,所以我的分数从高到低依次排列,但我不知道如何过滤范围,并以某种方式偷偷地在主"100、90、80"计数/标题区域添加一行。
HTML代码:
<body ng-app="myApp" ng-controller="myCtrl">
<table class="table">
<tbody>
<tr ng-repeat="x in myData | orderBy:'title' | orderBy:'-score'">
<td>{{x.title}}</td>
<td>{{x.score}}</td>
</tr>
</tbody>
</table>
</body>
AngularJS:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
$http.get("scores.json").then(function (response) {
$scope.myData = response.data;
});
});
我认为for循环或if语句可能会起作用,但我不确定如何将其放入angularjs的选项/过滤器等中。
您可以使用模运算
您的HTML
<body ng-app="myApp" ng-controller="myCtrl">
<table class="table">
<tbody>
<tr ng-repeat-start="x in myData | orderBy:'title' | orderBy:'-score'" ng-if="x.score % 10 == 0">
<td colspan="2">x.score -----------</td>
</tr>
<tr ng-repeat-end>
<td>{{x.title}}</td>
<td>{{x.score}}</td>
</tr>
</tbody>
</table>
</body>
如果你的分数是10的倍数,它将显示一个章节的标题,然后它将显示标题和分数
我在没有应用任何过滤条件的情况下就实现了这一点。但我稍微更改了您的json格式。在这里查看我的jsfiddle。
Js报价
这是我的代码
编写脚本
var myApp = angular.module('Application', []);
myApp.controller('myController', ['$scope', function($scope) {
$scope.tabledata = [{
title:"100",subhead:[{value:"99"},{value:"98"},{value:"97"}]
}, {
title:"90",subhead:[{value:"89"},{value:"88"},{value:"87"}]
}, {
title:"80",subhead:[{value:"79"},{value:"78"},{value:"77"}]
}, {
title:"70",subhead:[{value:"69"},{value:"68"},{value:"67"}]
}];
}]);
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="Application" ng-controller="myController">
{{ tabledata }}
<hr>
<div ng-repeat="data in tabledata">
<div id="data.title" class="title">
{{data.title}}
</div>
<div ng-repeat="subHeading in data.subhead" class="subhead">
{{subHeading.value}}
</div>
</div>
</div>
CSS
.title
{
background-color:#ccc;
font-weight:bold;
font-size:24px;
widht:100%;
height:auto;
}
.subhead{
background-color:#d7d7d7;
font-size:18px;
widht:100%;
height:auto;
}
相关文章:
- 需要将变量设置为特定的数字范围
- 用于验证数字范围的正则表达式
- Javascript/Jquery:使用数字范围验证输入
- 创建使用用户输入的数字范围生成的随机数.(JavaScript)
- 需要Javascript数学表达式或公式来将数字范围放在组中
- Javascript / jQuery - 将一个数字范围映射到另一个数字范围
- 始终在 3K 数字范围内选择不同的数字
- Javascript:在数字范围之间转换,保持正确的比例
- 如何在其他重叠的数字范围之间找到可用的数字范围
- 检查数字范围内没有重复项的数字范围的最有效方法
- 在javascript中选择数字范围的算法
- 输入-限制数字范围
- 6位base36数字范围的正则表达式
- 在数字范围内查找空白
- 纯javascript html 5文本类型数字范围验证
- 正则表达式,用于数字中有空格的数字范围
- HTML表单下拉菜单指定数字范围
- 使用循环javascript的数字范围
- 如何在jquery中使用切换大小写(数字范围)
- 构造正则表达式以匹配数字范围